Create custom variables for a template file inside a menu callback function
I don't believe you can do this without using hook_theme, but this is exactly what it's for and it's quite simple. (This code is for Drupal 6.)

/**
 * Implements hook_menu().
 */
function example_menu() {
  $items['example/page1'] = array(
    'page callback'     =&gt; 'example_page1_callback',
    'access callback'   =&gt; TRUE,
    'type'              =&gt; MENU_CALLBACK,
  );
  return $items;
}

/**
 * Page callback function
 */
function example_page1_callback() {
  $variable_to_print1 = 'Foo';
  $variable_to_print2 = 'Bar';
  return theme('example_contents', $variable_to_print1, $variable_to_print2);
}

/**
 * Implements hook_theme().
 */
function example_theme() {
  return array(
    'example_contents' =&gt; array(
      'arguments' =&gt; array('variable_to_print1' =&gt; null, 'variable_to_print2' =&gt; null),
      'template' =&gt; 'example-contents',
    ),
  );
}


$variable_to_print1 and $variable_to_print2 are now available in example-contents.tpl.php.