Having different theme elements for different pages
Check out Context module - it will allow you to structure the website based on the node type, URL or other parameters. Depending on this, you can have different blocks displayed, or use different layouts.

See also Display Suite and Panels modules for even more possibilities.

If you want to avoid using additional modules, you can achieve similar functionality through code and preprocess_html or preprocess_page implementations. You can specify special templates that will be selected dynamically, e.g.:

function MYTHEME_preprocess_page(&amp;$variables) {
  // Make sure we are on the single node page.
  if (arg(0) == 'node' &amp;&amp; arg(1) &amp;&amp; !arg(2)) {
    // This will allow you to have separate page.tpl.php template used only
    // for single nodes. You should have page--single-node.tpl.php file in
    // your theme to see this in action. You can combine this with any
    // additional number of conditions, e.g. node type, user role etc.
    $variables['theme_hook_suggestions'][] = 'page__single_node';
  }
}