I'd also add:
7. Most .NET shops are so technologically conservative they mandate their developers write "C# 2.5" because those C# 3, 4, 5 features are too scary and unproven. Which is part of what causes #5.
Also, low quality commercial .NET libraries are an epidemic.