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.