The short version is, web developers (at least, the ones for those companies) suck. They're testing for expecific browsers, rather than testing for browser capabilities. IE9 Mobile is actually better than the browser on most of the older Android phones (a lot of phones still ship with 2.3 brand new, and many older ones never even *got* 2.3). However, because the user-agent string it sends doesn't identify itself as a WebKit browser, or some such piss-poor shortcut test, the site send incredibly dumbed-down web code as its fall-back to "I don't even know what this is" mode.
Note that many other sites *do* correctly identify the WP7 browser... just not all of them. Also, some will give different experiences depending on the site; for example, m.facebook.com has a very different UI from touch.facebook.com.
As for sites looking like they do in the desktop, if you want that, put the browser in Desktop mode (it's under Settings, which apparently people never bother to check...) That will cause the browser to send a user-agent string that closely approximates the one used by desktop IE. Websites which use that to identify the browser will therefore send the desktop site code.
Win8/Windows RT projects:
List of desktop apps for hacked RT devices
Native Access WebServer and Libraries
WP8 Interop Unlocks
XapHandler, Root Webserver, OEM Marketplace XAPs, Bookmarklets collection (Find On Page), Interop-unlock hacks.