Yerf!
achja und antworten wie "layouts mit tables sind sowieso scheisse" möchte ich gleich vorwegnehmen, dass es mit:
<div style="height:100%">
<div style="height:100px;">
dieses div ist 100px hoch.
</div>
<div style="height:100%">
dieses div soll den rest des schirms füllen, aber nicht mehr!
</div>
</div>sich genauso verhält.
Das liegt daran, dass sich die 100% des inneren Div an der Höhe des äußeren und nicht am verbleibenden Platz orientieren (bei der Tabelle genauso). Was passiert, wenn Du bei der Tabellenzelle die 100% einfach weglässt? (die Tabelle sollte ja trotzdem die Höhe erzeugen).
Alternativ könnte man das auch mit absoluter Positionierung erreichen.
#div1{position:absolut;height:100px;top0px;}
#div2{position:absolut;top100px;bottom0px;}
Der IE kann das aber leider nicht. Der ist zu blöd ne Höhe zu berechnen, wenn man ihm das nicht extra per Expression erklärt.
#div2{position:absolut;top100px;}
html > body #div2 {bottom:0px;}
* html #div2{height:expression((window.document.body.clientHeight - 100)+"px");
Funktioniert dann allerdings nur mit JavaScript...
Gruß,
Harlequin