Trains are the best way, especially for smaller towns where flying would mean getting a taxi there anyhow. Now with more buses and coaches that are available, like Megabus, it's cost effective and takes the same amount of time as the train. Some places are only linked by buses, so that's the only option. I visited a place in Grosetto and there was one bus a day to the town I was going to and that was the only way to get there unless you rented a car.