Si lees el Manual de PHP header() envia una cabecera al navegador, si el navegador decide omitirla PHP no puede hacer nada, es simplemente parte del prótocolo HTTP.
Como te comento es algo totalmente independiente a PHP, es solo control del navegador, y ver como se comporta en base a lo que se le indique, tu mismo puedes probarlo si envias un header("Content-type: text/plain"); puedes ver que una pagina HTML se transforma en un documento de texto, esto es del navegador, pero si el navegador decide omitir leer la cabecera Content-type no puedes hacer mucho.
Te recomiendo leer el
RFC 2616 donde te indica que cabeceras debes de enviar y como (en teoria) se debe de comportar el navegador.
Saludos