There are many reasons why IRCTC is the way it is. To the usually hyper critical Indian this is again something that the government cannot get right. I agree to some extent. Not fully. I can say a few words on this topics with some knowledge as I wrote (along with others) http://www.cleartrip.com/trains.

First about IRCTC:
IRCTC is not a standalone system. IRCTC is just a front end web application which uses API of CRIS (Center for railway information systems http://cris.org.in). CRIS is the mother ship. It holds data of routes, availability, coach location, fare tables, running information etc. There are about 30 million passengers who travel by Indian railways everyday. A majority of this is unreserved seats (a kind which IRCTC doesn't book except Mumbai local tickets). CRIS has 5 data centers across the country which host Passenger Reservation System(PRS) backend. Every originating train is booked at it's nearby PRS system. For instance, if there is a train which starts from Chennai then booking being done at a New Delhi railway office will happen on Chennai PRS. This is the reason why some time people get "Chennai NODE down" notice at railway counters. This is a highly distributed system which can book majority of the tickets even in the face of a massive network failure. And it works pretty well. All the railway office systems are connected to 'mainframe' via a measly dialup link and are themselves thin clients. All the action happens at the data center that is why you can sometimes see that the clerk types much faster than the display.

IRCTC gets access to CRIS system via a set of APIs. Curiously this api has exact names that are there in the form fields of http://indianrailway.gov.in. IRCTC doesn't even know which trains are bookable on their own system(!) because CRIS doesn't give them any API to get that list.

These are the few API calls they get (broadly)
1. Get list of trains between two stations in a particular class
2. Get train route on a particular day in that particular class
3. Get availability on that particular day on that particular train
4. Get fare for this ticket
5. Book this ticket

Even if one of these are behaving badly there would be some degradation on IRCTC end. This is the first point of failure.

There is one more point of failure at the IRCTC end. They have only half competent system admins who don't really care too much. IRCTC gets boat loads of hits during morning tatkal hours. After all they do not really have engineers. System is designed by some services company in Delhi and they do not care either to make system resilient.

At cleartrip, we tried to address some issues. I used to scrape all the routes of all the trains (the way I did get all the trains bookable is still a secret :) ) on the the bookable days as they may change route. After this scraping reached steady state, every morning my system used to make calls to IRCTC to get routes of last+1 bookable day route for all trains. We had also made a system to get correct fare tables of all the trains and all the two hundred bylaws. By doing all this we got rid of #1, #2 and #4 calls. We still had to make #3 and #5. No way around that :(. Well there is one around #3 but can be a little dangerous as caching availability is not very fail proof. However, we still cached those and presented it in a format that was still useful http://www.cleartrip.com/trains/calendar

Cleartrip also made sure that design of the site was very user friendly. We were the first to map names of the stations to cities. So you can search for Mumbai -- all stations to Delhi -- all stations. We also geocoded most of the stations which makes trains mappable. http://www.cleartrip.com/trains/12925/map?from=BDTS&to=A...

BTW this all is dated information. We (me and most of people around me) quit Cleartrip two and half years back due to some unfortunate jackass.

So go and use http://www.cleartrip.com/trains It will still fail when #3 or #5 fails but will work like a charm if those two work well.