In iCal's preferences, what value do you have for "Hide To Do items X days after they have been completed"?
If I set the value to 0, completed items disappear immediately when I check them, and can only be viewed by checking "Show All Completed Items". With a higher value, completed items hang around for a while.