My last experience of this is a year ago so things may have changed but all in all I think a transit in 2 hours is quite optimistic.
Loads of flights arrive at that time of the day (past midnight) and the immigration can be dealt with in 5 min or in 1h, depending on the queue length, whether the airline provided with the immigration document to fill in, etc.
Then you have to transfer. I've heard so many stories of people trying to tell you that inter-terminal buses (what I heard is one every 30min) have stopped their services, etc. and talk you into taking their cars and I get tired only thinking of this so each time I've done this, I've taken an airport hotel (which offer complimentary car pick-up) and moved to the domestic terminal (4km away but it seems to take forever as traffic is quite heavy even at 2am!) the following morning. But if you want to take a taxi, once you step out of the terminal building they'll come to you in masses.
At the domestic airport, after check-in you (there are 2 terminals depending on the airline) get all sorts of security checks with sometimes long queues (don't forget to get a paper cabin luggage tag at check-in, as it will get stamped many times to show your carry-on bag went through proper security channels).
So "if" your flight arrives on time, "if" there are not too many people at immigration, etc. etc. and it is just too many "ifs" for me so I wouldn't do it. I always tend to be on the safe side and don't want to argue but to each his own. This is just my personal experience. Other people's
opinion may give you more info.
Give me a flight with Jet Airways any time but not a transfer in Mumbai...