I just immigrated through Washington Dulles Airport yesterday. I also only had 2hours to my next flight and was worried that I might not make it. Fortunately, my plane from Zurich arrived about 25minutes earlier. I asked whether I had to stand in the line for US Citizens and Residents or Visitors. I was told that I had to use the visitor's line which is really long in Washington. Once it was my turn, the officer took my sealed envelop and the passport and told me to go to the Secondary Inspection office. I had to wait about 20minutes there, and I made my next flight without a problem.
When I checked in at the airport in Zurich, I asked whether the flight company would put me on the next plane without me having to pay extra and I was told that it's not a problem. However, I suppose it depends on whether there are still seats available, so it might be more difficult in times when a lot of people travel (e.g. in summer or over Christmas).