Bem, no momento em que o IE 4, 5 e 6 foram criados ... não havia padrões - havia uma idéia aproximada do que fazer e um pântano de tags suportado apenas no netscape ou IE, e peculiaridades específicas do navegador - a maneira padrão de corrigir era .. codificando para cada navegador separadamente.
Os padrões que usamos agora vieram depois e, na verdade, eles não são muito bem suportados nos navegadores.
Agora, as coisas pioram. Código de pessoas para o IE6. Eles usam software que gera 'html' que é porcaria .. e funciona no IE e nada mais. Eles fazem todos os tipos de hacks feios ... e quando a conformidade com os padrões o quebra, eles reclamam.
O MS tem uma corda bamba entre as multidões de 'suporte legado' e 'conformidade de padrões', então vai demorar um pouco para que os padrões sejam totalmente atendidos