1) You can play most of games offline if you have a flaky connection; 2) They don't have a standard practice of turning off servers to 'obsolete' games, unlike EA. The Steam games are expected to work as long as Steam itself works; but SimCity most likely won't work much longer after the next SimCity is released, as we can see from EA current practices.
DRM is DRM. People only get angry when things don't work, with the occasional philosophical argument thrown in to prove a point after the fact.
Steam gets less hate only because their servers have better uptime, but the hate towards EA comes in the form of a philosophical argument about how DRM is fundamentally broken.
Though, it SimCity's case it seems to be worse as I've heard people losing saves occasionally. I don't remember too many people losing characters when Diablo 3 launched.
The problem with EA then isn't DRM but badly implemented DRM.
* Treat all markets equal and release the game at the same time. Not having access to a game that's released elsewhere is a huge driver of piracy. * Support your games, release follow-up content. * Actually make the DRM-Service a service: I can buy a game on steam and if there is a mac/windows/linux version, I can actually play all three of them.
It's all give and take. It's annoying that Steam games are DRM protected, but OTOH, I get added benefits. Just taking functionality from the user won't get you far.
The "defective by design" refers to features unwanted by customer, but intentionally designed by manufacturer.
Examples in the physical world are specific short-lived parts in consumer appliances to reduce their longevity and increase sales - as it's better for manufacturer if a washing machine lasts 5 years but not 10; or new printers being sold with half-full cartridges to facilitate sales of replacements. Quite useful to the producer, but nonetheless despiceable.
Spend a year or more in a local without consistent internet access and Steam's solution is not nearly as rosy. Putting Steam in offline mode requires that your first make an internet connection to cache. Even then after a few days, the cache expires and you have to be able to connect again.