How can I create a custom page with a different template?
You can use a different template for a page by suggesting a new template file that will be used.

This can be done in a theme, by writing its template_preprocess_page(), or in a module by implementing hook_preprocess_page().

function template_preprocess_page(&amp;$variables) {
  if (arg(0) == "node" &amp;&amp; arg(1) == "1") {
    array_unshift($variables['theme_hook_suggestions'], "page--custom-template");
  }
}


This code is for Drupal 7; for Drupal 6 you need to replace $variables['theme_hook_suggestions'] with $variables['template_files']. In the case you are using it in a module, template_preprocess_page() needs to be renamed mymodule_preprocess_page(), where "mymodule" is the short name of your module.
Instead of using arg() you can also use request_uri(), but the output returned from this function is similar to "/dr72/devel/php?render=overlay&amp;render=overlay" when Drupal is installed in a subdirectory of the web server's root directory. request_uri() doesn't change an alias into the canonical path; supposing that example.com/node-1-title is an alias for example.com/node/1, in my test site, the function will return "/dr72/node-1-title" while arg(0) and arg(1) would return, respectively, "node" and "1" (the first two elements of the path).