- Windows 95: Not perfectly stable or technically very groundbreaking, but a good enough combination of usability and features to be considered decent in my mind and millions of others at the time.
- IE6: great at the time. Some of the standards it doesn't support didn't exist when it came out. Also, IE5 introduced the Microsoft.XMLHTTP ActiveX control, which was the foundation for XMLHttpRequest. If that wasn’t created by Microsoft at the time, AJAX almost certainly wouldn’t be as ubiquitous as it is today.
- SQL Server 20xx: Perhaps RDMS's aren't your thing, but they're very much needed for now, and Microsoft's can certainly handle most relational db needs.
- .NET 3.5+ and C# 3+: If you want a statically typed language and platform, anything .NET 3.5 or greater are at least ok.
- ASP.NET MVC 2+: Not quit the same as a dynamically-based ROR or Django and they also don’t give you a default ORM; you pick it, but its solid and improving. Source code is available; contribs aren’t.
- Visual Studio 2008+: Again, not some crazy vim/emacs setup, although plugins can somewhat help simulate that, but these definitely don’t suck at all.
- IIS7+: Just because it’s not Apache doesn't mean it isn't decent. It is quite powerful and secure.
- Windows Server 2003+: Never had bad experiences with these.
- Microsoft Security Essentials: Very good and free antivirus.
I’m sure there’s more, but it is an exaggeration to say Microsoft hasn’t made any decent products. Certainly some of these don’t seem as good overall when accounting for the licensing costs and associated culture/stigma that comes with working in Microsoft shops, but many of products in and of themselves are decent.