I had this same strange problem and what’s worse is that in firebug and chrome inspector they both show the <head> content within the <body> tags….but when viewing the source the <head> content is in the correct place.
Basically after rebuilding my theme bit by bit I found my functions.php and two of the files it was including were UTF8 encoded and by changing their encoding to UTF8-without-bom sorted this issue..
I think that is the solution ElSebas found.
Baffled me for half a day trying to work that out….
I wonder if this is an UTF8 issue with some browser inspectors?
In the end just another test to add to the build scripts to be sure that all files are in the correct format ??