特定カテゴリの記事一覧などを表示させる際、

<?php query_posts('cat=8'); ?>
<?php while (have_posts()) : the_post(); ?>
//ほげほげ
<?php endwhile;?>

という風にquery_posts()を使って表示させると、条件分岐タグ(is_home()、is_category()など)の動作に影響を与えてしまいます。例えば「カテゴリID3のカテゴリページ」のサイドバーで、query_posts()を使ってカテゴリID8の記事一覧を表示させると、その行以降はis_category(‘8’)に対してtrueが返ってきてしまいます。

それは困る、という場合は、

1.get_posts()を使ったマルチループを使う

<?php $myposts = get_posts('category=8'); ?>
<?php foreach($myposts as $post): ?>
<?php setup_postdata($post); ?>
//ほげほげ
<?php endforeach; ?>

あるいは、

2.新たにクエリを発行する

<?php $my_query = new WP_Query('cat=8'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
//ほげほげ
<?php endwhile;?>

という書き方をすれば大丈夫です。