Sure, this extra blank space / carriage return is the cause of the error, most of the time.
You also get the error for another reason : as soon as a plugin references a UTF-8 file (with the php "include", for instance). The problem is solved as soon as you convert the faulty file (or all files, in case of doubt) to ANSI/ASCII.
That explains the 4-byte question of anthb, earlier in this thread : if you open a UTF-8 file with UltraEditStudio (or any serious editor) and display the content in hexadecimal (CTRL+H in UEStudio), you'll see that the UTF-8 version has an additionnal "FF FE" at the beginning of the file. This is what breaks the header chain.
Unfortunately, converting from UTF-8 to ANSI was a very bad news for me, as I had to "utf8_encode" every piece of text having special chars in them.
I hope this will help, I haven't seen this info anywhere else on the Net and have spent an outrageous amount of time to track down this stupid error !