This happens when you try to set cookies/headers/register sessions etc., when there's already been some content outputted. If you have any html,text, or possibly even whitespace in front, that would happen.
As for it working other platforms, I can only thing that those are buffering the whole page, so you can set headers anywhere in your script, and it will wait and send the page afterwards, whereas your os2 is just sending it as it's generated.
HTH.