Buenas, la linea de "session_start()" está bien colocada, desconozco un poco porque te da problemas. Yo lo he utilizado igual, cuando utilizo sessiones y no me ha dado problemas nunca.
 
Para guardar variables de session con php5, yo hago lo siguiente. Tras comprobar que el usuario que intenta acceder, existe en en sistema, recojo sus datos y en mi caso solo guardo su nick, su contraseña, y un nivel que le tengo establecido... de la siguiente manera:  
 Código PHP:
            //recojo los datos de una consulta SQL
       $datos = mysql_fetch_array($result);
        
        //crear variables de session
        $_SESSION["usuario"] = $datos["usuario"];
        $_SESSION["clave"] = $datos["clave"];
        $_SESSION["nivel"] = $datos["nivel"]; 
    
  Con eso , mientras el usuario siga interactuando, exista dicha session, esos datos estarán disponible en todas las paginas que pueda acceder. 
Saludos.