pues con tu primer pregunta respondes la segunda...
es necesario
session_start para activar la sesión, y al igual que los
header se recomienda hacerlo antes de comenzar a imprimir algo...
según el manual de PHP (supongo que ya lo consultaste) para eso sirve la sesión, para conservar datos a través de distintas paginas...
Código PHP:
<?php
session_start();
// ...
$_SESSION['foo'] = 'BAR';
// ...
$candy = $_SESSION['foo'];
vaya, si no inicias sesión (session_start) ¿¿como pretendías jugar con las variables de sesión???
NOTA no dejes de consultar el manual... (ahí están la mayoría de respuestas, y en las
FAQ's del foro también)