I guess it's kind of like rooting for the home team. I don't really know how it came about, though. I started programming back in high school starting from BASIC to C and eventually, at the college level, I worked with Java for 4 years. It's a wonder that I'd end up--and I'll admit it--in the Microsoft camp.
It seems like many Fortune 1000 companies are catching the same bug:
A recent survey of the Fortune 1000 websites by Port80 Software shows that Microsoft's Internet Information Services (IIS) usage has doubled over the last year as it is being used by 54.9 percent of companies. In contrast, Apache usage has dropped to 23.3 percent placing it 4 percentage points lower than IIS6 alone. While the results could very well be accurate, it should be noted that Port80 Software has a bias toward Microsoft as it is one of their partners, not to mention the company specializes in developing tools and solutions for IIS.
I think C#, in particular, is making converts at the grass roots level; it's an efficient and well designed general purpose programming language that, in my opinion, trumps Java. I think C# 3.0 (not to be confused with the oddly named .Net Framework 3.0) will once again up the ante and bring a whole host of new language features to C# (and to other MSIL languages, I suppose) that show once again why Java is becoming...archaic.
I will admit, though, one of the biggest knocks against the MS development direction is valid: they've really dumbed down development for the masses. They've made the platform so accessible that it's kind of lowered the standards of what passes as a .Net developer.
A rant for another day, I suppose 😉