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? I need to be able to echo the vocabulary that is associated with a node, but I need to echo it either in the preprocess_page function in template.php OR somewhere in page.tpl.php. I can't seem to find how exactly this will work in Drupal 7. Does anyone know?
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.