Il safe mode applica queste restrizioni http://www.php.net/manual/en/features.safe-mode.functions.php
Register globals invece rende visibili allo script le variabili d'ambiente direttamente. Ad esempio normalmente per leggere i parametri passati allo script tramite get si legge l'array $_GET['pippo'].
Con register globals puoi leggere direttamente $pippo.
In ogni caso entrambe queste caratteristiche hanno creato più problemi che soluzioni e sono deprecate in php5 e totalmente eliminate in php6.