One often neglected factor is simply that software development is hard to scale. What works for a small company or project starts to fall apart rapidly as the company or project grows. When this is extrapolated to something the size of Microsoft it's a small wonder anything works. In reality they do an admirable job considering the scale they work at.

As a previous post pointed out, a lot of the problem is that they are the biggest target, not really that they're that bad. Almost all software has flaws.
_________________________
Charlie