I believe keeping important content on server-side is the only way developers came up with so far. Making of hacked content delivery mechanism for each specific game can be boring thing to do, but still pretty possible.
As for piracy in general... Some classic games are in hearts of many players only because they've been distributed uncontrollably in post-USSR countries which I witnessed many times. Players, especially from less rich countries, do tend to either play full game first and pay later or support game in other ways, like record a video about it or tell friends. So 2nd option could be to ignore these cases, or make a free version with hint to tell about this game in exchange of it being free for player.
And 3rd option - maybe even put in-game ads for free version of the game? It sure would work much better if game was a browser game though, but then piracy could be a less of a problem too. I don't think I saw any games with ads on Steam so far.