I think the only solution is every publisher having their own version of Steam, perhaps in the cloud rather than a client on the desktop though still in the game being somewhat invisible. You log in for each publisher just like you sign into Steam but through the game menu. Forget the DRM that always gets cracked and stick to online authentication, though a fairer approach such as log in once that last 24hrs even if you go offline. If your going offline, request a pass for a couple of days or weeks that has limited uses per year but more allowed if you get in contact for specific reasons.

DRM is pointless. It only impacts legitimate users and has no impact upon pirates. The way to combat piracy is to offer incentives, not disincentives. Steam completely changed the industry. Before I had to go to a store, buy a game, go through a tedious install process (often fullscreen and with music), find a download site for the patch and wait in a queue and then try to find a way around the CD-check. It annoyed me that I had to keep messing about with inserting discs when from a technical perspective it simply wasn't necessary. And if I broke or lost a disc - both have happened to me - then that was it, my game was gone. Steam changed that by not requiring CD-checks, auto-patching games, removing the installer process and making purchases dramatically faster (just the download time). Since I started using it features like Steam Cloud have been added for backing up saves and a screenshot function was added, along with a tool to update graphics drivers. Steam also offers incredible sales.

Steam works because it is so much less hassle than pirating. Rather than manually searching for patches and cracks it's all automatic and quick. However, the next challenge is interoperability. The last thing I want is 30 different services like Steam and having to remember all the different logins I need. I find anything that's not on Steam doesn't get played as much, like Starcraft II on my Battle.net account. And Good Old Games is a pain because I just have a pile of installers - I have over 440 games on Steam and I can't be doing with manually installing them all.