Firstly, MS has admitted that its OS has ton of bugs and security holes and released ton of patches to correct them. The problem is that many users are just users. They don't know how important of those patches and decide not to apply them so that their boxes are vulnerable and unstable. Another reason is that the copies they're using are the pirated ones, especially in Thailand and most of developing countries. So, they're afraid that MS will penalise them or make their systems useless.
Furthermore, many users install so many (pirated) softwares, which, in many times, they never use them, to their boxes. These programs, sometimes, produce conflicts to each other, or even to the operating system itself making the system crash and hard to trace back. In addition to those softwares, many users love free(mal)wares and never read the agreement before installing them. This means you ALLOW the malwares to be run in your box.
Regarding viruses and worms, I don't have any argument to this. Because it is true that there're megatons of Windows viruses and worms out there. I have to admit that it has far less amount of viruses in other platforms (Mac, Unix and Linux) than in Windows. Nevertheless, you can immunise your system with anti-virus software and try not to be tempted to open certain kinds of email attachments which their subjects are about "pornography" or something like that.

From the factors above, you may see that the primary cause is USERS. They don't know how to use and maintain theirs properly. Or even worse, they don't want to know about it or remember what was happened to their systems and make it happen over and over again. (Honestly, it's not politics)
I dual boot Windows and Linux and use Linux as my main OS. I love it because it looks geeky and it can answer all my needs. However, I still have to use Windows because ... (you know that). My Windows system has been still healthy since the second installation (the first one had gone during Ark Linux installation. I accidentally deleted the Windows partition T_T), around 6 months since then. I always update security patches, do not install unnecessary softwares, try to read everything before installation and do update anti-virus definition. Since then, I've never seen BSOD. I feel that this is a kind of sufficiency economy. In term of softwares, if they are necessary, then buy and use them. But if they are not essential, why do you have to get them (illegally). Just keep it simple and clean and you'll be happy with Windows.
It's not that bad, is it?
PS. This is not an excuse for MS, however, I don't like some opinions, saying that how bad Windows could be while they don't even know what they are doing to their own system.
PS.2 First year anniversary in blogging at Blogspot :)