Paged is just a setting that defines the LIMIT clause in the mysql query, which in essence gives you paging.
The issue with using..
query_posts('parameters')
..is that by making that declaration you instruct WordPress to drop all existing queried parameters. In alot of cases this is fine, but imagine for a moment that index.php also handled category pages to..
When a link is clicked to view a category (example: yoursite.com/?cat=1), a query variable is waiting to be placed into the query. The query would normally place any query variable into the query for you.
You can retain these variables by using..
query_posts($query_string.'&YOUR_PARAMETERS');
..as $query_string contains all the current queried vars(variables). This way you can add you own stuff whilst not effecting what would usually happen behind the scenes (so to speak).
It's up to you how you fix the problem, my previous replies state how to do this.
- Drop query_posts, and add the filter i posted into your functions file.
- Add the paged variable to your query_posts line.
Bear in mind, when you don't declare query_posts in a given file, WordPress deals with the paging for you, as well as any other query variables that need to be dealth with.
If you'd like a break down on anything else, please be specific about what doesn't make sense, and i'll do my best to explain.