I have the same question. I have seen several threads addressing this. The most promising suggestion seemed to be to go to iCal settings and uncheck a box that says "Delete items after__ days". But I can't even find that option, so I think it was in an older version.
THIS IS A BIG PROBLEM FOR A LOT OF US. We need a record of our past calendar. We need to look back to see when an event 6 or more months ago took place. Is there a way to set the CURRENT version of iCal not to delete past non-recurring events???
If not I have to switch calendars, but it's hard to believe there's no way to do this.