Its not always possible to find a root cause with all corruptions. A corruption can happen but go undetected for a long time and will only be detected when the page/row is read for the next time. This sounds like what happened in your customer's case.
The best defense against an assertion is a good backup procedure and a solid understanding of how to restore from it. This Wiki link has some detailed info about assertions and recovery that could help your customer get a better understanding.
Handling an Assertion Failure - SAP SQL Anywhere - SCN Wiki
Thanks
Mark