When you reigster/add a page to the admin area, using add_submenu_page or any of the other add_{TYPE}_page functions the fourth parameter accepts a unique identifier, this identifier designates the hook your given page will use..
So for a moment imagine i registered a page like so..
add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options');
In the example above the unique identifier is my-unique-identifier. Various hooks are then available for that page specifically, and here's a few possible actions for that hook..
add_action( 'load-my-unique-identifier', 'my_callback_function' );
add_action( 'admin_head-my-unique-identifier', 'my_callback_function' );
add_action( 'admin_print_scripts-my-unique-identifier', 'my_callback_function' );
add_action( 'admin_print_styles-my-unique-identifier', 'my_callback_function' );
There's also admin_enqueue_scripts which provides the name of the current hook in the string/variable it passes along to functions that hook on..
You should never need to hook onto admin_head,admin_print_scripts or admin_print_styles unless you have a script/style you want to load for every admin page, if you are, then you're doing it wrong (because there's hooks for every page specifically in the administration area).
Hope that helps..