How exactly does get_sidebar() work? I had (incorrectly) assumed that the function worked similarly to an include function, however, I am finding variables defined in my header file aren’t available in the sidebar being called.
get_sidebar does work similarly to an include, but not entirely. Because it goes into a function for this, the variables in the header or sidebars and such are in different scopes. This is intentional, actually.
So, if you want to use stuff from the header in the sidebar (same for the main page, the footer, etc), then you need to define them as global variables just before you use them.
… register_globals doesn’t really have anything to do with manually declaring a variable global. register_globals controls whether or not incoming GET and POST values are automatically turned into global variables. In fact, register_globals should be off at all times, for security purposes.