Ho risolto in questo modo, anche se potrebbe essere rischioso.
La variabile $_SESSION e' sovrascritta dal framework di joomla, e se io la uso in modo scorretto, ad esempio come un array monodimensionale, tutto il resto mi si cancella e addio sessione.
Se invece uso $_SESSION ad esempio in questo modo
$_SESSION['categoria']['nome_variabile']
tutto funziona.
ATTENZIONE : il problema e' che non potete usare questa $_SESSION se nel vostro script non avete inizializzato tutto il framework, e se la usate sara' visibile cosi' com'e' solo dagli script non integrati nel framework.
Questo genera un isolamento tra script fai-da-te e script integrati.
La soluzione finora che ho trovato necessaria e' che ogni script che debba accedere alla sessione inizializzata da joomla debba contenere le seguenti righe (che sono le prime di joomla/index.php)
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname("/opt/lampp/htdocs/joomla/index.php") );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');