When I remote connect to my work PC, in IE10, the juniper remote client service which is basically a plugin executed in the browser does not run. I need to turn on compatibility view to see it. My question is what exactly is happening behind the scenes in compatibility view such that such a large number of compatibility problems can be fixed with it? What did they do...make a list of deprecated APIs that was running ok in ie8 but deprecated in ie10 and then on clicking compatibility view, those APIs are supported again?
Basically, IE attempts to find the best compatibility mode first before rendering the page with the newest version of its engine, IE10 in your case. But before, IE more or less follows the given flow:
To sum it up, IE either uses the standard mode of the specified engine, OR it completely emulates the rendering of the page with a previous engine, thus allowing for legacy pages to be displayed properly. Since they use a different engine, it may explain why a plugin works in one case and does not in another.
For much more detailed information, check the MSDN article on that subject.
Edit: found that practically the same question is available in Pro Webmasters SE!