I agree with you on the ASP.NET / Microsoft part. So in this particular case, we're stuck.
But as far as the rest of your post: Standards is what make many different computer platforms, manufacturers, operating systems, applications etc. work together - because all following the same rules. Carelessly breaking standards IS equivalent breaking the "law" and interfers with this friendly multi-vendor/multi-platform interaction.
Pointing at others (here: other non-compliant sites) never serves as a justification for not doing the right thing.
There are so many time-consuming, productivity losing issues with browser dependence (e.g., Safari, Chrome, Firefox) that could easily be avoided if the HTML code was compliant in the first place.
(Sorry, but I'm coming from SMTP, TCP and other protocols - where compliance is not optional, but understood by all parties as a requirement for things to work smoothly. I'm always surprised how the large number of developers/players in this field has lead to an abandonment of basic discipline and best practices. I can fully understand that mistakes happen, but not that energy is wasted on defending non-compliance, instead of justing fixing it when it's noticed.)