From what I understand, the way you have changed it to is "the way it's now done". I have come on a similar track to you. I'm guess you already know since you have it working, but I'll state it just in case:
You can set a session val: $SESSION['varname']=$varname
And get a session val: $varname=$SESSION['varname']
I think it is done like this to encourage OO, but that's just a guess.
How did you turn register_globals back on?
Also, something that might come in handy is $_POST['varname']. This was anotherone I had to implement after ugrading my server.
I'm curious: what are you running? OS & dist(if applicable)
I'm using Redhat 9.0