I also have to chime in and say that XP has been, by far, the most stable and reliable Windows I have ever used (did I just say that ?).
With 95, 98 or 98SE, my PC could never run for more than 30 hours without either rebooting itself or requiring a reboot. Now I run my home PCs 24/7 and they hardly ever (by MS standards, meaning once a week) require a reboot. Until XP, it has been install/uninstall nightmare and repeated joyrides into the Registry (I wish I could strangle the guy that got THAT idea).
The one good point about 3.1 was that you could save the win.ini and sys.ini files, install whatever you wanted, test it and, if it didn't work, just reinstate the ini backups and all was said and done.
What did the Registry add that ini files in app folders would not have done just as well ? What other OS has a Registry ? How long did it take MS to evolve to XP, while all other OSes worked rock-stable with text files configuring everything ?
All that is past now, XP is present and, given its heritage, it is not a bad OS. It could be a lot better still, but it's a great improvement over what we used to have.
Now, as for why do people put up with this, I have one question : do you really think all those people that compose the public would want to know how to configure a Port Foreward ? Or how to schedule disk maintenance ? Or bother with KDE settings ?
They don't and they won't. To us, a PC is an intricate ensemble of complexe mechanisms that we try to keep as fit and healthy as possible. We're geeks, it's what we do. But to Joe Public, a PC is a magic box that will allow him to put his digital pics on a TV screen. What he's interested in is seeing those pics on TV, not seeing a myriad of options and settings and choices just to get the PC started.
That is why Linux in its actual state will never be a consumer OS - an enterprise one, probably, but not a consumer one.
With all its flaws, Windows has a Wizard that will take away the pain of thinking and give a general, normally-good-enough configuration following some questions that Joe User may or may not understand, but he will at least have the impression that he is not a total fool. And he might even be proud of having "configured" his PC "all by himself". Take the same guy and make him install a Linux distro and watch a grown man decompose.
And yes, I know Linux is a lot more user-friendly than it was 10 years ago, I followed its growth during more than a decade and it has progressed in leaps and bounds. But it is still not "user" friendly. It is geek-friendly.
Microsoft has understood that users do not want to understand the PC, they just want to use it for a few specific things. And Microsoft gives them a shiny package that allows them to do just that. It doesn't matter if the PC is a slow, resource-hogging monster full of spyware and botmasters. When the user notices how crappy his PC is, he'll either pay someone to reinstall it, or buy a new shiny thing, and he'll start over.
That is Microsoft's market, and it's doing damn fine in it.
Now, as for why businesses put up with this madness, well just go and talk with your manager for five minutes and ask him what he thinks about phishing, man-in-the-middle attacks and ID theft. I'm sure you'll understand pretty quick ;-).
A more objective answer is that businesses today are hamstrung by the fact that, fifteen to twenty years ago, Windows was the only choice for a company that couldn't afford a mainframe (remember those ?). MS is profiting from the fact that ALL business software has always been designed specifically for a Windows environment. And that is going to take a long, long time to change.
Pascal.