Richtig, als erstes brauchst du ein vernünftiges Grundgerüst.
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Index</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link type="text/css" rel="stylesheet" media="screen, projection" href="css/main.css" />
<link type="text/css" rel="stylesheet" media="print" href="css/print.css" />
</head>
<body>
</body>
</html>
Bei dir fehlt nämlich das Ende des <body> und des <html>. Ausserdem ist dein <div>, welches du vor dem <head> schreibst, dort nicht erlaubt und auch nicht nötig. Den Abstand nach oben kannst du ganz leicht per CSS bekommen.
Code:
body {padding-top: 50px;}
Dann würde es sich anbieten, dass du deinen Rahmen nicht als Grafik einbindest, sondern ebenfalls per CSS definierst.
Des Weiteren wäre es übersichtlicher, wenn du dein CSS in eine separate Datei schreibst und diese im <head> einbindest, das steigert die Übersichtlichkeit und das Style Sheet kann für andere Seiten ebenfalls verwendet werden. So brauchst du es nicht in jeder Datei neu zu schreiben.
Absolut unangebracht ist auch die Verwendung von <center>, <font> und <div align='center'>, da diese dem Layout dienen, dafür ist aber CSS zuständig.
Über die Verwendung von Tabellen als Layoutmittel steht hier ja schon einiges, warum du es dennoch wieder verwendest, bleibt mir ein Rätsel.
Die fehlerhafte Darstellung in anderen Browsern kann übrigends durch deinen Fehlerhaften Code entstehen, diese solltest du zuerst beseitigen. Der Link, den threadi dir gegeben hat, hilft dir dabei.
Damit solltest du erstmal einiges zu tun haben, wenn du damit fertig bist, oder noch Fragen hast, immer raus damit.