How do I prevent an ORA-08102 error I am getting an ORA error (08102 - Index Key Not Found) with several customers, and I have been unable to reproduce or explain it.  They have all been on the same index on the same table. 

This error is tied to two tables - ALPHA and BRAVO.  ALPHA has a primary key on alpha_id. BRAVO links to ALPHA by a foreign key reference to ALPHA.alpha_id.  For these customers, all BRAVO rows point to a single APLHA row on the BRAVO table. We have an index on the BRAVO table whose only column is BRAVO.alpha_id.  

That index, ALPHA_ID_FK, is generating the error when we go to delete rows. As I said, I have been unable to replicate this myself, but I'm getting reports of the same problem by several different customers.  

We are sometimes able to rebuild the index to correct this issue, but even rebuilding the index is not working for all customers.  

What is causing this error, and how can I better prevent it?
Disclaimer:
As @JustinCave wrote, you should contact Oracle support.
I give the following information without any warranty.
Source of Information:
I found the following metalink notes that analyze this problem:

ORA-08102: Rebuilding Index does not correct ORA-8102 (Doc ID 96118.1)
ORA-8102 CORRUPT INDEX, ORA-1499 EVEN AFTER DROPPING AND RECREATING INDEX (Doc ID 1081343.6)

Why does Rebuilding an Index not help?
Rebuilding the index may not help. 'REBUILD' uses the data of the existing index. If the data of the index is corrupt you will not get rid of this corruption. So a 'DROP INDEX ...' followed by a 'CREATE INDEX ...' is an option. But the create index may scan another index that contains the fields of the index to create. An if the index that is scanned is corrupt you still may create a corrupt index. Finally you may drop all indexes that my be used for creating your index and recreate them all. But it may also happen that your table is corrupt and then index recreation will generate again corrupt indexes. If this is the case you have to repair the corrupt table before you rebuild the indexes.
What is Corrupt?
To check what problems your table/indexes have you can issue the statement
ANALYZE TABLE &lt;owner&gt;.&lt;table_name&gt; VALIDATE STRUCTURE CASCADE;

It will generate a trace file with the appropriate errors, but maybe only an Oracle support engineer can read this trace output. The analyze statement may lock your table.
How to Repair a Table?
If rebuild or the recreation of one or more indexes does not help, because the table is corrupt then the table mus be rebuilt. This can be done by exporting the table with data pump (expdp) , dropping the table and importing the table with data pump (impdp) (or exp/imp for older Oracle versions). You may loosed data (of the corrupt rows) when doing this export import.