IIS vs Apache, in pictures
Programmers are all too familiar with the phrase "spaghetti code", a derogatory term for what happens when functionality (and thus the number of lines of code and function calls) grows without any thought given to design and simplicity. Complexity is the mortal enemy of security and stability when it comes to software development.
The following images help to illustrate the concept of spaghetti code in a way words never could. They also do a strong job of demonstrating why most Web 2.0 startups are living and dying by the open source holy trinity, Linux+Apache+Php/MySQL.
This diagram of Apache's internal system calls shows a fair bit of organization and diligence. It's neat, it's tidy and it's compact. This is (mostly) how a diagram of system calls should look.
Then we have IIS. It's schizophrenic, distracted and tangled. It's knotted in such a manner that, if it were a pile of shoelaces, you'd probably just buy new laces and start over. I respect anyone who has to go near the lines of code which produce this diagram, and I feel for anyone who is forced to administrate the resulting web server.