Register_globals creates several different security problems:
If you accidentally "forget" to define a variable, the user can get whatever value they want into it just by passing it through as a cookie / get / post etc
Using cross-site scripting, a malicious user may be able to persuade code to run as a legitimate user, to do something they hadn't explicitly requested.
Consider a privileged user having a cookie which stores their privilege level. Using cross-site scripting, it would not normally be possible to produce a POST, but you could make a GET by just linking the user to a page with a normal anchor.
Something like a POST payload would not normally be able to be triggered automatically by a malicious user from another site. but if you are using register_globals and just using $blah, then using cross-site scripting they might be able to get in.
Basically it's all a bit dodgy.
Your best bet is to test whether register_globals is enabled at runtime, and throw an error if it is, so that you notice if it "accidentally" gets switched back on.
That's what I do.
Mark