Ya he dado con el problema en si... y se me cae la cara de vergueza como programador...
@pateketrueke No se decirte cuantos mensajes he leido sobre el tema, porque han sido muchos, y he mirado distintos foros tanto en español como en ingles, y no acababa de dar con el mismo problema o la manera de solucionarlo. Y ya sabía que había que poner session_start() en cada página que lo necesite, pero puse el caso entero con y sin session_start.
Bueno el error por si interesa de todos modos era
Cita: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\A0\home.php:2) in C:\xampp\htdocs\A0\home.php on line 4
Me he tirado 4 horas borrando posibles espacios en blanco, tabulaciones y otras tonterías típicas por las que suele dar ese error. Pero seguía sin ver nada tanto en la linea 2 como en la 4. En fin, el fallo era este "<!-- Si hay sesion -->". Tantas horas mirando un código y en ningún momento me di cuenta de que el comentario HTML es HTML al fin y al cabo.
Gracias por las molestias de todos modos.