I don't know (or particularly care) what my personal site is running on. i pay dreamhost a couple bucks and they take care of all that boring stuff for me.
Of course, you also have a choice not to care, but then you probably don't do any server side programming.
I do have a VPS account with Webbynode which lets you run several Linux flavors, and a choice of nix, apache, or node which is cool but still scary for someone like me who is comfortable with the command line on my own file system but a little shaky when SSH-img into my VPS.
This might sound dumb, but I'm a server newbie. What I've always wondered is why anyone would use IIS at all? It seems like all MS products make you jump through hoops to do simple things that work on Apache ad others with just a click or simple command. It's been a while since I've experienced it so I wish I could point to so,etching more solid but I remember a few years back having to install PHP on IIS with MySQL and it was a pain plus not everything worked by default and there was just a lot of hoops to jump through just to get a simple CRUD app online. What does IIS offer that others don't?
Also, why does most enterprise software get built with ASP and .NET? I'm in a CIS program in college and they're all about teaching us Microsoft technologies and I can't stand it because I feel like I'll be using languages, frameworks, and other tech that's open for the most part in real world situations (I don't plan to be a corporate programmer, I'm already in business for myself). Please excuse my ignorance, I really do just wonder, I could be thinking totally backwards here.
Trying to host an ASP.NET 4/MVC3 site on Apache would be a nightmare. So, for the same reason you might tend to avoid IIS for your PHP work, .NET developers will prefer IIS for their work.
As for why so much "enterprise" software is written in languages like C# and Java, I believe it has a lot to do with those companies having very large teams with high turnover. Static languages (and their tooling) do have some compelling advantages in that situation.
Almost everything serious runs behind some sort of proxy, and those proxies often front for heterogeneous back-end systems, and even those back-ends might offload some of their logic to other systems.
There are too many interweaved layers in complex web services, and too many parts that can be (and routinely are) put together in too many different ways. The identity of the front-end is interesting only in a rather attenuated sense, and it can usually be trivially swapped out for another.
Linode has stack scripts for the LEMP stack (linode uses "E" for the njinx). I agree there should be similar stack for windows to increase adoption
What nginx really needs is something like WAMP or MAMP to really spur adoption. I suspect lot of beginner web developers use Apache and MySQL because they're both installed by default on hosting providers. On Windows, you can't beat one-click WAMP installs.