page which display only $content (no header,footer,sidebars)
Drupal works its way down a function call stack to find and use hooks defined in other places. So, in much the same way that THEMENAME_preprocess_page() works, so does MODULENAME_preprocess_page - See http://drupal.org/node/223430 for the specific order that these preprocess functions are called.

Now, as for setting up the template. You define it using http://api.drupal.org/api/function/hook_theme - As an example from the block module:

function block_theme() {
return array(
'block' =&gt; array(
      'render element' =&gt; 'elements', 
      'template' =&gt; 'block',
    ), // Omitted remainder.


Notice the 'template' attribute. That maps to block.tpl.php. So assume the following:

function myModuleName_theme() {
return array(
    'my_themehook_special' =&gt; array(
        //notice I am setting this up to look for the file in a subdirectory of the module
        'template' =&gt; 'moduleSubdirectory/filenameOfTemplate',
        'arguments' =&gt; array('yourArgumentObject' =&gt; null),
    )
);
}


That would register your template. Check out this blog post for more: http://www.trevorsimonton.com/blog/tplphp-hooktheme-drupal-variable-template-module