¿Qué editor estás usando?, ¿bajo qué Sistema Operativo trabajas?, ¿con qué codificación lo estás guardando?.
Tengo entendido algunos editores que guardan con cierta codificación (creo que con UTF-8) ponen al inicio del archivo un carácter especial... no en tu contenido (no lo verás) pero esta ahí.
En lo que recuerdo cómo era el asunto y si de verdad estás absolutamente seguro que no tienes salida antes del session_start(), y si nada de lo que te han sugerido funciona... contesta las preguntas que hice para buscar más información (es algo muy raro).
Edito:
No tengo tan Mala memoria... Tu problema puede llamarse
Byte Order Mark (BOM) http://unicode.org/faq/utf_bom.html#22 http://es.wikipedia.org/wiki/Marca_d...ytes_%28BOM%29
... y de la Wikipedia cito:
Cita: [...] Muchas aplicaciones Windows (incluyendo Windows Notepad) añaden un BOM a sus ficheros UTF-8. Sin embargo en los sistemas tipo Unix (que hacen uso exhaustivo de ficheros de texto para configuración) no se recomienda esta práctica, pues puede interferir con el correcto procesado de códigos importantes, tales como el hash-bang al principio de la interpretación de un script. También podría interferir con el código fuente de aquellos lenguajes de programación que no lo reconozcan. Por ejemplo, gcc informa de los caracteres perdidos al comienzo del fichero fuente, y en PHP, cuando el output buffering está desactivado, tiene el sutil efecto de hacer que la página comience de inmediato a ser enviada al navegador, evitando que las cabeceras (custom headers) puedan ser especificadas por el script PHP.
THEN GOTO LINE 1