Postgres 9.1.6 Error index contains unexpected zero page at block 0
I just ran into the same issue on Postgres 8.3.11. Although I could not identify the root cause, the fix was simple enough:

REINDEX INDEX tbl_cust_id_idx;


This page contains hints as to what may have caused the error, although they are vague:


  An indicated table index was corrupted (may be a result of recent postgres or system failure, there was a lack of free space on the device, etc).


Ideally it would be helpful if there was something that could be put in place to proactively prevent or correct these errors. On the bright side, this is the first time we have ever seen this problem in several years and across hundreds of machines.