On ne va pas y revenir, mais il y a eu pendant cinq/six ans un espèce de
guerre entre les différents navigateurs du marché (Netscape et Internet Explorer), et cette guerre avait pour objet le perfectionnement des navigateurs... et du langage utilisé pour baliser des trucs (HTML). C'est de là que vient JavaScript par exemple (et c'est Netscape qui a commencé.)
Au bout d'un moment, les navigateurs ont commencé à accepter des erreurs de programmation. Par exemple, oublier de fermer <p>, ne pas afficher des espèce de simili-commentaires qui avaient oublié de contenir un point d'exclamation (soit : <-- au lieu de <!--)
Toutes ces aberrations rendent difficiles le codage des navigateurs. (cf
FAQ XHTML.) Quand tu mets un doctype, et un en-tête correct, les navigateurs analysent ta page comme étant "bien codé". Du coup, les erreurs d'affichages qu'auraient pu commetre les anciens navigateurs s'effacent, et tu as pour résultat l'affichage que tu aurais dû avoir dès le début.
Après, pour t'aider spécifiquement, donne-nous l'exemple qui cloche.