Hi!
I had the same problem! is_home() or is_front_page() did not work in the footer. I figured out it turns FALSE after the query_posts() or get_post() (as BStofko wrote).
So instead of using a variable for this and struggle with GLOBALS I’ve found and used this wordpress function after finishing the query:
<?php wp_reset_query(); ?>
Works like a charm for me. ??
wp_reset_query (line 75)
Destroy the previous query and setup a new query.
This should be used after query_posts() and before another query_posts(). This will remove obscure bugs that occur when the previous wp_query object is not destroyed properly before another is setup.
since: 2.3.0
uses: $wp_query
void wp_reset_query ()
The above quote is from: here
Another forum post about this: here