Hi,
Firstly I think u would be able to manage the places that u have mentioned in 3 weeks.
Coming to Trains there are indeed some fast trains that u can consider for long distances. Regarding internal transportation, where long distances are to be covered, it would be preferable to take the ariel route. Some of the domestic airlines operating are:
www.jetairways.com
www.flykingfisher.com
www.goair.in
www.goindigo.in
www.spicejet.com
U can prefer train/bus for shorter distances. Train tickets can also be booked upto 60 days in advance at www.irctc.co.in
Trains that are designated as " Rajdhani" and " Shatabdi" are excellant high speed trains which can also save time for u.
I will advise u to start with Delhi and then head straight to Varanasi, spend some time there and then take a direct train to Agra and then u can also visit Jaipur which is 4-5 hrs by road/train. From Jaipur u can head straight to Jaisalmer which is a beautiful town indeed.
There are no direct trains from Jaisalmer to Mumbai, u will have to change at Jodhpur so it is advisable to spend a couple of days in Jodhpur also before heading back to Mumbai.
Mumbai to Goa is just an overnight train journey, relax in Goa for 4-6 days, explore all the beaches before heading back to Mumbai to catch ur flight.
My personal favourite is the State of KERALA, which is called the God's own country. This state has a number of backwater cruises to suit every budget. In Kerala, the traingle of Munnar(hill station), Thekkady(wild life reserve) and Alleppy(Centre of backwater activites) are not to be missed. But since ur running short of time u can consider visiting Kerala and down south on ur next trip
Do let me know if u need any more info
Cheers
Arif