Some settings can be set inside the PHP page - for example include_path
Some settings can be set anywhere before the PHP page starts executing - like register_globals - as it needs to know the result before it starts running PHP code - this can be set with (for example) php_flag in the httpd.conf or htaccess files.
Some settings (mostly security-related) can be only set with php_admin_value or php_admin_flag in httpd.conf - these can usually be set at the virtual host level, and your host may give you access to this.
Yet other settings, (mostly security-related) like disable_function, can ONLY be set at the master php.ini level, and won't have any effect at all if set anywhere else (include php_admin_value)
The manual does explain this fairly clearly.
Mark