la sesión no se pierde, lo que pasa es que debes llamar siempre a session_start();, no te recomiendo que uses sesiones automáticas, son un rollo, pero si el hosting lo tiene sólo basta colocar:
@session_start();
y listo, no tendrás el mensaje de error y funcionara perfecto; sólo no debes olvidar que cuando el usuario cierre sesión, destruyas los datos de la misma.