Here's a thought. Piracy differs from regular thievery in that it can be copied and sent to other people; this is generally what happens when someone downloads free copies off the internet. I don't know much about how source code works, but...
I propose writing a function into the gameor code where attempting to alter or remove pieces of the game (other than saving, loading, deleteing save files, etc.) results in wiping the rest of the code from the system, esentially erasing the game. Although it will eventually be circumvented, it, at the very least, would make it more difficult to pirate the game, as any process to do so would have to be completed all at once.
Of course, I could be wrong. I just hopwe that there will eventually be a solution that hits the pirates harder than the customers.
While I'm thinking about it, why are PC games hit harder than console games?