I don't know... Unless MSFT starts paying phone manufacturers or developing their own hardware, I don't see this catching up as much as Android or IOS. There is nothing intuitive about the OS and honestly very underwhelming, I doubt a consumer who is aware of IOS and Android and have the option of choosing either one of the three will end up with Windows7.
I'm replacing my iPhone (3G) now and it's not for a Win7 phone, it's for an HTC Desire. Even to me, a .NET developer, Android seems like a better platform to develop for.
IMO Microsoft copied pretty much everything Apple did with iPhone,with a subtle taste of too little too late. Ofcourse I would love to be proven wrong, but for the time being I'm going for Android and Java, despite all its shortcomings compared to C#.