I used to do an actual license key with my modules but decided against that in the end because of the hassle (even it being automated) for an end-user to switch from one domain to another or from one server to another. At this point I am now licensing on an honor system and I accept that I likely have people using my modules on more portals than they've licensed.
However, to your question about handling trials -- I still do have all my code in place and I compile a special trial release (just use the preprocessor directives to selectively compile or ignore certain sections of code) so it will check for a valid (and unaltered) license key and makes sure it is within the trial period. It'll always work on localhost by design, but if it is an expired trial on a live portal I have it flat out disable the module in full whereas others might disable only certain aspects of the module.
If I get around to it I'd be happy to post up the code and instructions how to use my methods (which I borrowed from a blog elsewhere on the internet) to license the DNN modules.
Ultimately I go back to my first statement about not using them (license keys) though. Lets say that for some reason I stop doing business. I want anybody who purchased my module to be able to continue using it, even if they switch servers, and not have to worry about me being a dead company. I have purchased other modules in the past and ran into that problem so that was the mitigating factor for me in removing that restriction on my modules.
*EDIT: By the way, I really like Ventrian's model for licensing modules and when I develop a larger repetoire of commercial modules I'll likely switch to that model; I just don't feel like right now it is worth it for me (or a customer for that matter) to use that model. I've developed quite a few modules for internal usage at my day job and might even take and commercialize some of them, but overall most of them are pretty specific to internal needs.