How do I echo the node vocabulary in preprocess_page or in page.tpl.php so that I can test against it in Drupal 7?
If you want to output something on in the page structure (ie. somewhere in page.tpl.php), you need to output it as a block, Drupal's primary structural element.

In a module, define a hook_block_info() (or hook_block() in Drupal 6 and below), and implement it in this way:

/**
 * Implements hook_block_info().
 */
function mymodule_block_info() {
  return array(
    'node_taxonomy' =&gt; t('Taxonomy terms of the node')
  );
}

/**
 * Implements hook_block_view().
 */
function mymodule_block_view($delta = '') {
  if ($delta != 'node_taxonomy') {
    return;
  }

  // Get a node object form the URL (node/123).
  $node = menu_get_object();
  if (!$node) {
    return;
  }

  // Render the 'field_tags' field from the node object using the 'page' display.
  $rendered_field = field_view_field('node', $node, 'field_tags', 'page');
  if ($rendered_field) {
    return array(
      'subject' =&gt; t('Tags'),
      'content' =&gt; $rendered_field,
    );
  }
}


Or use Panels, which is precisely designed to build composite pages, and allows you to render the different elements of the node in different places.

Other approaches, especially those involving hacking the theming layer are breaking the principle of separation of structure and presentation.