a diversi dtd corrispondono diversi comportamenti dei browser, tipiciamente con alcune i browser, in vario modo, vanno in standard mode, cioé interpretano, dovrebbero, correttamente secondo gli standard del w3c il codice, con altre invece vanno in quirk mode, dove invece più che degli standard si curano per retrocompatibilità di fare come facevano le vecchie versioni. Con quella dtd evidentemente vanno in standard mode quindi se ti serve lo standard mode per avere effetto un height in percentuale occorre dare un riferimento ai genitori cioè devi aggiungere:

html, body {height:100%}

nota che ie quando va in standard, oltre che ci va a modo suo, vale solo per ie6, gli altri ie conoscono solo il quirk, per cui non so quanto convenga ie in standard, per fare una prova guarda come ti viene visualizzato un eventuale div di classe BoxModelProblem :

.BoxModelProblem {background:red;
width:400px;
padding:200px;
border:50px solid silver
}

con ie6 in standard mode e con gli altri ie.