One of my college instructors knew somebody who was a developer at MS. He said that before you were allowed to leave for the day, the code that you were working on had to compile. While this is good in that a build can be done at any given time, what happens at the end of the day when you want to leave? Most people will just hack what they need to in order to get it to compile (but not necessarily run right) so they can get out of work. I think that anybody who codes can attest to the fact that when you leave and come back the next day, you don't always remember exactly where you were when you left.
I also think that there are business reasons. As long as people are willing to pay for the bug fixes, why fix all the bugs? If they were to put out a rock solid OS with no problems what-so-ever, what are the chances that a significant number of people would upgrade to the next version?
I heard that Gates is royally POed about the xbox security being broken. I guess he appointed a panel of his top people to make sure that didn't happen. Demonstrating the ingenuity and resourcefulness of computer geeks who don't want to be restricted, it took a few months. If companies would learn from history, they'd concentrate on putting out a good product that people are willing to pay for instead of inventing hundreds of copy-protection schemes. (Take the last audio CD protection. The recording industry spent millions of dollars developing it. 2 days after it was released, somebody posted a method of defeating it using a dry erase marker.

)
Just my somewhat lengthy $.02
*edit* - I just read this over and noticed I really didn't get to the point in the last paragraph. The point is that no matter how much you know or how good you are, somebody somewhere is better.