cd keys are the best method against piracy as has been mentioned, but only effective if online.
with the length of cd keys these days, the chance of a keygen randomly generated a working one is in more than millions.
and with cd checks, just use a program to emulate the disc. then you never need cd in drive and updates/patches work fine.
usb dongles are horrible idea. at any rate it's already been done as serial port dongle for 3d max or one of those professional graphics programs since they cost thousands. what ended up happening is a simple program was made to fake the dongle. and that was defeated. honest joe gets annoyed
adding more and more layers of protection is understandable, but bad in implementation. all it does is annoy and harm the paying customer. i believe software should have 1 check and that's it. anything above is pointless, since it only encourages cracks/piracy to avoid the annoyance.
good recent example is warcraft 3 expansion. they used new secu rom protection. problem is, even people with legit copies have had problems where they can't play it anymore. their cd drive isn't compatible with the protection. but sure enough it's possible to burn working copies of the cd and possible to emulate the cd on hard drive. so at most this ended up hurting paying customers. many won't know better, and leave pissed that they either had to buy a new cd drive, or can't play the game after the recent update.
and if your cd key somehow gets stolen, honest joe has to pay normally ~$10 to get a new one from game company. old cd key gets black listed. guy who pirated game simply finds another key, without paying of course. joe loses.
so again, having 1 check would be good, like cd key to deter casual joe from thinking about pirating. anything else is fluff.
only other feasible method would be to make the program partly hardware based. meaning not just check or storage, but hardware that works in conjunction with software or completely runs on hardware that's plugged in. msft has been considering using such an idea where there's another slot on motherboard of OS card. to update windows, you simply plug in newer windows 2004 OS card. this can't be emulated because OS functions are run off of the card itself. this would work best for software, but current structure of technology and industry would not be in favor of it.
unless there software runs off of specially made hardware, there is no way of protecting the data 100%. there can always be a way to emulate or fake whatever check is made.
What is the point of CD keys?
to annoy the paying customer. that's all protection ever does. and it wont' get better unless customers speak out like turbo tax last year.