So far regular trains are concerned, free food (cost charged in the ticket price) is served only in Rajdhani and Shatabdi trains without exception as per the schedule. It is also applicable to most of the Duronto trains excepting some (which are overnight or short duration day trains).
Tourist trains (Like palace on wheels) etc. also have this facility.