Hola dblanco,
Efectivamente es con header(), pero no con location, si no envías cabeceras diferentes para descargar el archivo y luego usas readfile o envías el contenido directamente al explorador.
Revisa este link:
http://www.ryboe.com/tutorials/php-h...force-download para una explicación más detallada.
Saludos.