Create a custom front page for anonymous users
in your THEME_preprocess_page(&amp;$vars) hook you can put something along the lines of...

if ($vars['is_front'] &amp;&amp; !$vars['logged_in']) {
   $vars['template_files'][]='page-front-anonymous'; // drupal 6
   $vars['theme_hook_suggestions'][]='page_front_anonymous'; // drupal 7
}


which should work using the is_front and logged_in variables set by the various modules before you get to it.  if you are using a module, and don't want to rely on weight/execution order, you could do it with:

global $user;
if (drupal_is_front_page() &amp;&amp; !$user-&gt;uid ) {
.....