I'm not sure your beef with Microsoft makes much sense here -- why is it wrong to serve the pages to users in the way they ask for them? Is it my job as a developer to somehow re-divine what browser people are using even if they are telling me they are using a different one intentionally?
Also most browsers give you a choice of which of their competitors useragents you want to use to identify their browser. Safari running on Windows has a setting to identify itself as iPhone and Chrome has a similar setting for identifying itself as Android. Those are settings provided by Apple and Google as a part of the browser setup.
Those options make loads of sense -- loads easier to test webapps with desktop browsers. Sometimes you want to fake it. Especially with Safari for windows which is almost purely a tool for developers to test things with safari to make the web better for apple customers on apple devices.
So the liars here are Microsoft, Apple and Google. So they are the people you should be telling to stop monkeying with the settings and let the USER decide how they want to identify THEIR browser - it is after all called a USER agent and so I should be the one choosing the value to use for it in my browsers and not Microsoft, Apple or Google offering values that pretend to be Netscape.
Also if I were to set the useragent in my browsers to "Steve's Microsoft Browser", "Steve's Apple Browser" and "Steve's Google Browser" then unlike the supplied useragents I am not lying as that would be an accurate description of what they are - it wouldn't match any of the utterly stupid useragent tests but then the only valid use for testing that field is to gather statistics on how many people use which lying useragent.
Early versions of MSIE did use Mozilla's user agent string but MSIE has always identified itself as well. See http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/ for a bit of history here.
Moreover, I think the IETF doesn't agree with your definition of USER agent. Section 14.43 of the RFC states:
The User-Agent request-header field contains information about the user agent originating the request. This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations. User agents SHOULD include this field with requests. The field can contain multiple product tokens (section 3.8) and comments identifying the agent and any subproducts which form a significant part of the user agent. By convention, the product tokens are listed in order of their significance for identifying the application.
Nowhere do they say it is an end-user adjustable header.