I just spent the better part of a day trying to figure out why internet explorer (all versions) was reverting back to quirks mode on our site that had been working fine for weeks. I checked the usual places made sure the doctype was correct, even validated the page.
The doctype was perfect in the master page and everything looked fine. It's just that IE was clearly in quirks mode with a broken box model.
Well finally I happened to view source when it popped out at me that there was a comment above the doctype. Another developer had added some code to spit out debug info in a comment and had it hooked up in the code-behind. Something like this:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<!-- some comment -->");
}
This very much pissed IE off and caused the site to look like crap for a while.
The moral of the story is that any content should be rendered out during the render cycle in ASP.NET, even if it's a comment.