Il primo doctype da te scritto non è completo, il browser interpreta il codice in quirks mode, così il tuo codice "funziona".
Il doctype corretto è:
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Come vedi anche così non funziona!

Devi "allungare" anche il contenitore della tabella (body) in modo che occupi tutta la pagina.
Se metti il border puoi vedere la differenza con e senza height:100%;
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<body style="border:1px solid red; height:100%;">
  <table border="1" style="width:100%; height:100%;"><tr><td>x</td></tr></table>
</body>
Le dimensioni è sempre meglio impostarle attraverso attributi di stile che permettono di separare dati e layout (per comodità li ho scritti inline).