Jadu...
Den där är skojsig...
Orsaken till att du har problem (jag antar att du bara har problemet i MSIE ? ) är att du valt att följa standard och köra med en <!DOCTYPE som ställer in "alla" webbläsare i "Standardanpassat tolkningläge" ("Standards mode").
I Standardanpassat läge får MSIE för sig att fördela höjder enbart efter hur mycket innehåll respektive rad innehåller - och helt ignorera ev. värden på height... Något som t.ex. Mozilla FireFox integör (din kod funkar alltså direkt i FF när jag testar med en "juste" <!DOCTYPE ...>
Något som MSIE däremot gör, är att den fungerar som du tänkt dig om du ställer över den i "Tolerant tolkningsläge" ("Quirks mode")...
Vilket ger dig ett dilemma om du fortfarande vill följa standard och fortsätta köra med samma <!DOCTYPE ...
MEN eftersom MSIE automagiskt går in i "Tolerant läge" om du lägger en kommentar före <!DOCTYPE ...>-taggen, så finns en lösning (om du kan leva med att webbläsarna hanterar sidan lite olika iom att de kommer att gå upp i olika lägen)... Lägg en kommentar innan din <!DOCTYPE ... >
Exempel:
<!-- kommentaren ställer MSIE i tolerant läge -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ett exempel</title>
<style type="text/css">
<!--
html,body {height:100%;margin:0;padding:0;}
table {height:100%;width:100%}
-->
</style>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td style="height:20px">#bild</td>
</tr>
<tr>
<td style="height:20px">#bild</td>
</tr>
<tr>
<td>#resten</td>
</tr>
</table>
</body>
</html>