Not joking (and I know this sucks) but there are a shit ton of IE users out there still and I'm not willing to hang our product for convenience.
Vendor specific code is a reality we're going to have to live with for a long time yet.
But that's not my case, and the same goes for many others; Microsoft already got the hint on that and they are starting to catch up and adhere to standards on their latest versions and trying to get everybody to use them (it was about time).
Since there are way more teams like ours than big teams funded with huge piles of cash, we have actually managed to put the ball in their court and they cannot make us do the monkey dance as much as they used to. Can we all avoid writing vendor specific code? Maybe not unconditionally, but we are almost there.
The goal of most real-world software is to deliver a working, usable product – not to produce lots of standards-compliant code.
For us in many cases it means to throw away vendor specific solutions in favor of most-major-browser compatible subsets of the current industry standards, even if it means throwing out support for older versions of IE.
For some users it might mean using a different service, but for most of them it means switching to a different browser because their favorite app doesn't work on IE.
And that's why Microsoft is going for standards compliance and timely browser updates more than ever.
I use resources like MDN and some automated testing tools to make sure the subset I use is properly implemented on all major browsers (all but IE <= 8, which really sucks at it).
But, subset or not, what I write is still 100% standards compliant code, in almost every project I'm involved with. I avoid as much as possible writing vendor specific code.
The result is I hardly ever get a complaint about my code working on one browser and not working on another.