Wenn du die Endung ".xhtml" verwendet hast, ist dein Webserver vermutlich so eingestellt, dass er entsprechende Dateien mit dem Content-Type "application/xhtml+xml" ausliefert. Das ist bei XHTML 1.0 empfohlen, bei XHTML 1.1 (kann übrigens nur Strict, kein Transitional) aber vorgeschrieben. Der blöde IE kann aber mit dem Content-Type nichts anfangen und bietet das Dokument dann zum Download an anstatt es als HTML zu interpretieren. Vielleicht reagiert er auch automatisch bei der Dateiendung so (oder beides), ich hab das in den letzten Jahren offenbar in Teilen aus meinem Gedächtnis gestrichen

Ende der Geschichte ist jedenfalls, dass Seiten eben auch deshalb nachwievor überwiegend als "text/html" ausgeliefert werden.
Auf meiner Website ist noch
ein exemplarisches Snippet rumfliegen, das anhand des Accept-Headers des Clients ermittelt, ob der Browser angibt, dass er mit dem XHTML-Content-Type etwas anfangen kann und ein entsprechendes Ergebnis liefert. Lohnt allerdings den Aufwand eher nicht.
Heute würde ich sagen, dass man es durchaus vertreten kann, es als "application/xhtml+xml" auszuliefern, wenn man ohnehin auf den IE6 pfeift und IE7+ damit umgehen können. Damit geht meines Wissens aber auch einher, dass das Markup tatsächlich als
XHTML und damit XML betrachtet wird; ungültiges Markup liefert dann einen Fehler anstatt einer überwiegend korrekt dargestellten Webseite.