Microsoft is in a bind. It's just not competing with internet companies in search or advertising. It's having to compete against free and ever-improving open source applications like Firefox and Apache. Due to issues such as lack of standards compliance e.g. CSS, the company has lost its good reputation with web developers. It seems to be fighting too many battles, and hasn't convinced with its new suite of online applications, Live, which anyway could cannibalize some of its most profitable products.
Most of all, Microsoft hasn't figured out how to capture the internet wave. It's being totally left behind on the web.
I'd like to propose a solution. It's a web solution, and one that plays to values that Microsoft has always understood - "developers, developers, developers".
Why not offer a web-based version of Visual Studio - call it Developer Live - that hosts web applications? Go the whole hog - different language choices, bug databases, software configuration management, test environments on the fly, GUI design tools. Charge by memory & processor usage, with reduced rates for students.
This strategy takes advantage of their incredible expertise for development tools and server systems.
The market is enormous - every application in the world! It avoids open source, which can never pay for massive data centers. It builds a whole new developer ecosystem, and no-one else (except maybe Amazon) seems to be thinking about it.
Microsoft would then offer three things - apps (e.g. Office), development (Developer Live), and clients (e.g. XBox / Vista). That's much cleaner than today's sprawl. And most importantly, they would regain clear leadership of the most important platform in the world - the web.