Generally speaking, Fiddler doesn't modify browser requests unless you tell it to.
Interestingly, I probably know why this is happening, since we debugged a similar problem with IE9 beta. The most likely explanation is that your router is single-threaded and can only handle a single connection at once. Most modern browsers will establish multiple connections in parallel so that there's a "free" connection available to service later requests. The problem is that this "free" connection gums up a single-threaded webserver since there's no request on the socket immediately and hence it waits a few seconds, then throws the 400.
Putting Fiddler in the middle makes such a problem go away because the browser's speculative/extra connection goes to Fiddler, not to the router. Fiddler only connects to the router when it's actually sending a request, which means that you never have an "empty" connection that causes the router to throw the 400.