>When I was in the consulting business that is how I wrote all of my apps. Also, when clients were on a pay as you go plan I added a password feature that kicked in after the software was supposed to be paid for. If they hadn't paid by the due date then I didn't phone them the password and as soon as the "in arrears" message popped up and dropped them back to the OS I got the call, and the check.
I already ask for the password, but then they're told what it is (or it's configured for them). Another thing is configured too: the s_demo system variable - it's set to 200 or 5000 or whatever we think they'll use up by the paytime. They get an alert saying "the free evaluation version of < app name here > has exceeded its limitations. Contact Alas LTD at ...< phone here >". It fired just a couple of times so far.