[Disclaimer: I've no experience implementing these ideas. They are based on comments from mate who developed a small utility with a delayed nag as the only "protection". There is a delay of about four months between download and sales graphs, but he has a reasonable conversion rate.]
.
What about like the delayed start timer reminders like WinZip used to have. Have only one full-version binary distributable. During the demo period there are no nags. After the demo period expires, during startup have a timer that delays the start - with a message about the demo expiring. Perhaps here ask for feedback from people of their first impressions - link to a subforum discussion site. As time goes on, the delay timer gets longer.
.
Getting good feedback can be difficult and may be worth something to you. Possibly for good feedback, have a method to extend their demo period. If you respond well to them and develop a conversation and rapport, then you have more chance of converting a sale. Also you get feedback from beginning users not just expert users. First impressions count so you need to cater to both. For selected demo users, perhaps their writing a blog entry of how they are using it (not just a review) may also extend their demo period.
.
Make the demo longish, and perhaps based on operational time, not just date periods. Busy users (ie professional - your best authorative bloggers and potential payers) may download it to try, but them be distracted for a while before they have a project to use it on. You want users to have time for it to become "part of their process" before the nags start.
.
The nags can include a startup dialog, a status bar being replaced at random intervals by one cycle of a ticker. The nags and/or product cost shouldn't be so intrusive that its easier reinstall or upgrade to the next version However after an extended period of time have a modal alert discussing your distribution philosophy might appear. Use humour, you want them onside. Then this model alert might now shut down the program - with a gracious option to delay the shutdown (for a decreasing amounts of time). This however is fine balance.
.
The nag delay screens should show an accumulation of delays. Get the user to enter their payrate so that the cost of the nags is apparent to them. When it comes to a business decision, that can be overlooked. After an extended period the program might shut down at intervals - but provide plenty of
.
During you can build in some usability statistics gathering that is only acctive during the demo period. At the least would want to get an idea of when the nags become too onerous and people unistall your software. You might also get an idea of where new users go wrong.
.
anyway thats my 2.5 cents worth