La scelta tra cookie e sessioni è semplice, se vuoi che certi dati vengano mantenuti da sessione a sessione
Ad esempio:

voglio scegliere una volta il layout e ogni volta che entro trovo lo stesso layout scelto (cookie)

voglio salvare i prodotti che l'utente vuole acquistare per un ecommerce (sessioni, non avrebbe senso salvare il carrello in modo che me lo ritrovo nuovamente quando ritorno sul sito dopo una settimana).

Per quanto riguarda il fatto che perdi dei dati per strada è solo un problema di implementazione, in ogni pagina in cui vuoi accedere ai dati della sessione devi avere il comando session_start(), se il problema non è questo vuol dire che in qualche modo sovrascrivi i dati.

A questo proposito attento alle register globals, perchè se hai $_SESSION['colore'] e $colore le 2 variabili sono la stessa cosa, quindi se usi da qualche parte nel tuo codice un nome di variabile uguale a quello che c'è in sessione lo sovrascrivi.

Ecco perchè è meglio sempre settare le register globals a off e usare $_SESSION, le funzioni per le quali hai chiesto aiuto sono deprecate da un bel po' di tempo, una volta nel manuale c'era anche scritto di lasciarle perdere, non so se c'è ancora questa nota.

Ciao