Correct way to include extra styles & script files?

You could tack it into header.php as you suggested (although this is not really the proper way to do it, it is best to use WPs enqueue function as described here).

When do you need these? All the time? You can enqueue scripts and styles to be used all the time, or on an as-needed/per template basis

http://codex.wordpress.org/Function_Reference/wp_enqueue_script
http://codex.wordpress.org/Function_Reference/wp_enqueue_style