Well, it was not really specified what sort of software to what kind of customer base. Large volume, home use is a difficult case. For professional use, and in volumes you can handle, I learnt a trick that can work well in many cases.
Just when you sell your software hardcode in it the name of the customer. You can make some little tricks to "generate" it inside the software (e.g. make the name as a sequence of char codes calculated from integer constants) or use a more sophisticated approach, like a public key decryption from the private key encrypted name. Anyway, the point is that it is not worth to debug, change your code.
Then in all outputs, let it be screen, printouts, files, network communication, etc. put there a copyright notice, who bought that license.
No company would use an illegal copy, taking the risk and blame of everybody seeing it.
(Although, once on an Asian international airline I saw inflight movies with constant copyright subtitle, like "property of x studio, it is illegal to display it publicly)