How do I prevent an ORA-08102 error
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.