Beim Durchlesen deiner Antwort ist mir aufgefallen, dass ich vergaß zu erwähnen, dass der Header und der Footer so platziert sein sollen, dass sie wirklich am Rand kleben, also ohne Platz dazwischen. In diesem Fall sind die position: .. schon sinnvoll (denke ich) weil damit unabhängig vom restlichen Inhalt die beiden Bereiche immer am Rand sind.
Welchen Rand meinst Du denn genau? Mit position:absolute klemmst Du die Elemente an den Rand des Elternelements, d.h. egal ob mit oder ohne position:absolute (und top/bottom:0), erstes und letztes Element werden _immer_ am jeweiligen äußersten Rand des Elternelements kleben. Möchtest Du die Elemente ganz an den Rand des Fensters, musst Du die Randbereiche margin und padding des Elternelements auf 0 setzen (hier: <body>).
Du kannst Dir das unter [http://kino-fahrplan.de/programm/ufa] anschauen. Die breiten, schwarzen Balken (div.cache) kleben ohne Einsatz von top oder bottom von alleine ganz oben bzw. unten am Dokumentenrand (n.b. das position:relative hat andere Gründe).
Falls Du mit "Rand" den Fensterrand als Referenzpunkt (im Gegensatz zum Dokumentenrand) meinst: Diese Idee wirst Du Dir vorerst aus dem Kopf schlagen müssen, weil der IE das dazu benötigte Attribut position:fixed nicht versteht.
Nur zur Sicherheit: Fensterrand und Dokumentenrand sind oben und links die gleichen, unten und rechts wird der Dokumentenrand vom Inhalt bestimmt.
Dein Tipp mit dem Auslesen könnte vielleicht klappen, wenn ich dem Header und dem Footer (bereits passiert) eine feste Höhe zuweise und dann die sichtbare Bildschirmhöhe minus die beiden Werte habe und diese Höhe dann einer blinden Tabelle zuweise, kann ich doch auf Umwegen das genannte in der Mitte zentrieren (?).
Du könntest sogar ganz auf eine Layouttabelle verzichten und einfach das mittlere <div>-Element entsprechend bearbeiten.
Gruß,
soenk.e