i had a similiar error, when clicking on the effective costs link in the statistics page of an prod. order. normally the capacity ledger entries page opens correctly, but sometimes the windows client crashes completely without any error message. but there is an entry in the eventlog saying "Index is not in a valid range for this collection."
after hours of researching and testing (debugging did not help), it turned out, that there is a bug in the nav standard.
the cap. ledger entries page is called by page.run(0,CapLedgEntry). the CapLedgEntry records are filtered and looped. in the loop some changes are made to some of fields of a record. when done, the record is marked(true). at the end of the loop the records are filtered with markedonly(true). but ... sometimes the last record processed in the loop is not marked. the record pointer (the index of the recordset) points to that record and is given to the page when called. bam! crash is ready. why that? the (last) record is not part of the recordset given to the page.run call, but the index points to that record. that is not allowed.