Tim Sweeney over at Epic recently spouted off, saying that Live for Windows isn't going to work because developers can implement all the functionality contained in Live themselves. I'm going to go off on a limb and say that is the exact reason that Live for Windows will work. Live for Windows succeeds on three fronts that PC games are notoriously lacking in: uniformity, responsibility and stability.
When you talk to someone about Xbox Live on the Xbox 360, what is one of the first things that pops up in any conversation? Once you've learned how to use Live in one game, you know how to use Live in every other game. Server browsers and multiplayer matchmaking aren't even uniform between titles in the same series, let alone between companies. A uniform multiplayer experience will only help grow the PC multiplayer game market.
When you're playing on Xbox Live, I'm able to quickly tell what other people think of a player by pulling up his GamerCard. Good players (or people who are fun to play with) have high player rankings, while jackasses have low rankings. People have noticed that if someone's a jackass in one game, they're likely to be jackasses in other games...this is a way that their reputation can follow them.
Finally, your master servers are going to be up for awhile, but how often have master servers gone down over the last few years, like Unreal 2 XMP's? Admittedly, EA tends to be a bit dickish about it while they justify the $1 billion spent on EA.com, but there have been several that have shut down completely because the companies responsible for them are no longer around. Microsoft's previous gaming servers, MSN Gaming Zone, lasted for a decade. Live for Windows has a more reliable funding stream than advertising, and has the potential to last for a significantly longer period of time.
And as a side note, just because developers can be implementing these features in their games doesn't necessarily mean that the developers should be implementing these features in their games. What makes more sense: spending ten man-months creating the server software, matchmaking functionality, rankings, ladders, etc. (not including debugging time), or spending two man-months to hook up an external library, call an API a minimum of 15 times per second, and fix the bugs that come up as a result of it?