Arizona: After watching a staged shoot-out in Williams, passengers board the Grand Canyon Railway for a two-hour ride to the canyon's rim--where they have four hours to explore before the return trip. 800/843-8724, thetrain.com, from $65, $30--$40 kids.
Near Sedona, four-hour Verde Canyon Railroad excursions wind through an isolated red-rock canyon where bald eagles nest. 800/320-0718, verdecanyonrr.com, from $65, $35 kids.
California: The Sierra Railroad's 1897-era train has appeared in more than 300 films, including High Noon and Unforgiven, and departs from Oakdale, about an hour east of San Francisco, on themed excursions such as the Wild West ride. Watch out: At one point, the train gets "attacked" by a pack of ornery outlaws. 800/866-1690, sierrarailroad.com, from $49, $25 kids.
Colorado: The Cumbres & Toltec Scenic Railroad, America's highest and longest narrow-gauge line, has been traversing the southern Rockies since 1880. Tours, which last six to eight hours, cross high trestles, edge along precipitous gorges, and chug through mountain tunnels. 888/286-2737, cumbrestoltec.com, from $62, $31 kids, including lunch.
Massachusetts: Departing from Hyannis, the Cape Cod Central Railroad passes through woodlands and cranberry bogs on a two-hour trip. A one-hour boat add-on gives a peek of the Kennedy Compound. 888/797-7245, capetrain.com, from $18, $14 kids.
Washington: On the Mount Rainier Scenic Railroad, a vintage 1920s steam locomotive heads off from Mineral, 80 miles from Seattle, on a 90-minute ride through deep woods and past waterfalls--with many opportunities to spot 14,410-foot-high Rainier (if the clouds cooperate). 360/569-2588, mrsr.com, $15, $12 kids.
West Virginia: Deep in the Appalachians, the Cass Scenic Railroad is part of a state park that has a preserved lumber town at its center. The train switchbacks up 11 percent grades on the five-hour ride to Bald Knob, the state's second-highest point. Dinner trains feature bluegrass music or murder mysteries. 304/456-4300, cassrailroad.com, from $15, kids $10.