Ich habe sie demnach mit session_register('ID'); registriert und übergebe per URL die $sid an die nächste Seite.
Auf der "nächsten Seite" hat die Variable $_SESSION[ID] keinen Inhalt. Die Variable $ID hat den jedoch den entsprechenden Wert.
Ohne jetzt in die Anleitung schauen zu wollen: wenn $ID einen Wert aus der Sitzung bekommt, ist register_globals eingeschaltet. Das könnte darauf hinweisen, dass Du eine uralte PHP-Version benutzt, die $_SESSION nicht unterstützt. Befasse Dich mit den Einstellungen für Deine PHP-Version.
Du kannst alls vorhandenen, von PHP erzeugten Variablen auch mit phpinfo() ausgeben lassen.