Take a look at the page sources from the local and the remote server. That may give you a clue as to what the differences are and how to minimize them. In particular, pay attention to the first line, specifying the DOCTYPE. This was the culprit when I experienced the same problem as you.
Have you checked that the HTML is the same? It could be that a different version of CGI.pm is emitting different HTML. If you are using a hosting provider that likes to stick a banner ad or otherwise monkey around your HTML that could well be it too.
Have you confirmed you're using the same version of the CGI module as the server? I had the same situation once and it turned out my CGI:: locally was far newer than at my host's site - CGI.pm, despite the myth, does change over time, and its handling and formatting changes as well (cookie support alone has changed a lot in the last year or three).
"I have never written bad code. There are merely unanticipated features."
Last time I had that problem it was due to invalid HTML. Try validating your HTML and you may find some missing or malformed tags.
I know it is strange that it didnt appear previously but I believe it was due to browsers these days using quirks mode in different circumstances.