Make your software stable, but keep few irritating but not fatal bugs. When your clients will ask you to fix them do it, but don't forgot to add few new bugs. Giant corporations play this never-ending-game from the beggining.
A place I used to work for used to have an application from an external company which had an authorisation code idea in it.
Basically the application would take the MAC address of the network card installed, and generate a question and answer code from it. It would only provide the question code with which we would call them up with. They'd give us the answer code which we'd key into the application and as long as it matched what it expected, it would unlock it.
I don't know how the coding works for that though as it was closed-source so I couldn't see the code :(
MAC identification isn't reliable. Much better is ROM crc. Thanks to the compatibility features of The system ale 16bit apps allowed to read 1st MB oo memory. You don't need to be admin, just run apps length of ~20Bytes and save ROM into file. I have already advised it here someone other couple of months ago - search this web please.