NSE uses Black-Scholes model with a constant interest rate assumption of 10%. The observed interest rate in the market is not 10% but it varies from time to time with changes in Reserve Bank’s repo rate and interbank lending rates. 

This fault can be very clearly inferred by the fact that IV of the ATM put and call are two significantly different values in NSE option chain whereas they should both have the same IV. NSE shows separate IVs for calls and puts. 

The problem with here is deep ITM options. Deep ITM options prices are corrupted by illiquidity and STT. So to find the IV at a strike, the better thing to do is to derive OTM IV of a strike, and apply the same to both call and put. Basically one IV for a strike, instead of a separate call and put. Also reduces mental clutter We use a Black 76 model, which corrects for the anomaly of interest rates, by using futures prices directly. This helps us capture the futures premium and discount, as well as any dividends etc more accurately than NSE's model.