As you mentioned, the first thing that you should do is turn registered globals off! This will probably require you to re-write many aspects of your scripts, but the level security gained will keep all but the most determined hackers out. As far as forms are concerned, it is a good idea to use POST whenever possible; this prevents the user from seeing the variables that you are using, and makes it that much harder for them to 'fake' a submission. There are also some other simple security messures that you can take, such as verifying that the form was indeed submitted, and that it was sent from the proper page.
If you are manually passing values from one page to another through the URL query syntax, it is a good idea to encrypt a part of the data, and send both the encrypted and un-encrypted versions; then in the next page, check that the two are equal. For instance, the url could look something like:
http://www.yoursite.com/page.php?name=fred&encname=[md5("fred")]
Then, in the next page, add the following code:
if (md5($get['name']) != $get['encname']) {
die ('Stop hacking my site!!!');
}
By doing this, any potential hackers must change two fields! (If you do this, it wouldn't be a bad idea to tack on some extra characters before you encrypt).
Of course, most of these issues could be avoided by employing one powerful concept: sessions! (check out: http://www.php.net/sessions)
Hope that helps!