IE11 normally sends "Trident/7.0" and not "MSIE". Apparently Microsoft has added "google.com" to the Compatibility View List [1], which means IE11 now sends Google a User Agent that does include "MSIE". Google is interpreting this to mean it's an old version of IE, and sending the legacy view. You can manually disable the CVL, but then other sites that Microsoft has determined need old versions of IE won't work. I suspect Google will update their UA regexp soon, and this will be fixed, but it does sound like a Microsoft bug.
Why does the entire web community agree that feature detection is the way to go and UA sniffing is bad, but time after time shows that Google does it on nearly all of their products?
It changes to one of: IE7 Standards Mode, IE8 Standards Mode, IE9 Standards Mode, IE9 Almost-Standards Mode, IE10 Standards Mode, or IE10 Almost-Standards Mode. I wish I was joking.
I'm pretty comfortable always blaming UA sniffing when there is an interaction between it and something else that causes problems.
It sounds like Microsoft screwed up their list, but IE saying 'MSIE' is not a bug by any stretch of the imaginations. The bad code here is all on Google's end.
It's not certain yet which party broke google.com - I've been running Windows 8.1 for over a month and it just broke in the past 24 hours. So either Microsoft pushed a new app compatibility list recently or Google changed their UA detection with the availability of 8.1.
Two different user agent strings for one version of one browser? That can change at any moment based on a list the site authors don't control? There's no way that'd ever confuse things!
Which is precisely why good web developers never trust user agents. Because they confuse things and cause bugs like this.
It's lazy/incompetent practice, which shouldn't really excusable for such a supposed massive advocate of web standards. MS are no shining example, but it's pot calling kettle black.
There are several reasons why UA detection is relevant where feature detection fails. The first is that you can serve prebuilt js binaries that have only the relevant logic for the requesting browser; strictly smaller js files for every user since you aren't serving irrelevant js.
Some things aren't feature detectable, like actual weird bugs in behavior that need browser specific workarounds.
In this case it looks like MS has the domain listed for their fallback mode, which doesn't just change the UA but actually changes the browser behavior (IE9 in IE8 mode has no canvas support and will fail the feature detection for canvas appropriately).
[1] http://msdn.microsoft.com/en-us/library/gg699485(v=vs.85).as...
(I work for Google, on unrelated things.)