Microsoft shouldn't be allowed *near* software.
Sorry, just read any MSDN example -- Microsoft fail most elements of basic software-reliability & engineering practice. Logging, fault reporting, configurability.
And this is what they teach others.
On to business practice & software examples. Subverting and undermining "standards" to try & lock-in customers to their bug-ridden proprietary software. "Active Desktop" as a radical mis-design, turning the desktop into a webpage & HTML into something that "runs".. introducing a whole new galaxy of viruses & malware.
If IE had been written correctly as a *parser* to "view" HTML, not an "executor" which dangerously "runs" HTML, the world would have only about 8 to 10% of the current torrent of viruses & malware.
Back to mobiles & WP7.
The real problem is Microsoft's much-vaunted low processor & power requirements. Basically, the way they get those is by allowing uncontrolled native code to run. Hello viruses & malware, device drivers, DLL version crashes.. all the BS the world hates.
Android doesn't do this, it uses a virtual machine and is likely to be inherently far more reliable & secure. I get good usability & battery life with Android, too -- after 9 hours at work and one or two calls, I still have 82% battery.