"Since it is 3rd-party generated there is not an easy way to add hints to recommend the NDX_EXTRACT index."

you can run it in sqlplus with and without the hint to see what the difference is in time and cost. Specifically consistent gets and physical reads. You should do set timing on and set autotrace on to get time and explain plan. Once you understand which is faster you will be closer to understanding why Oracle is using the index that it is using. You should also look at stats as PAVB suggested. It might be that your index is less efficient, or that there is something about the way the query is written that prevents Oracle from using the index that you want.