I'd make lots and lots of giant boulders, then build the tunnel using them. For instance, Farcry2 only has maybe a dozen different types of large rock, the stuff you would use to make a cave in Farcry2 - anyhoo these boulders are rotated and shifted around quite organically, to make cave walls and floors and all that stuff.
I would do the same, except I'd probably have smaller pieces too - then construct tunnels and caverns etc from these. Then I'd send in a node... well sort off. I would flag all the polygons inside the tunnel, like every polygon that is visible from somewhere inside the tunnel, I'd have all of them preserved and get rid of everything else. So instead of giant boulders making a tunnel structure, they simply contribute polygons to the tunnel itself.
I think it would be the most organic, easy, and fun way to work - move a boulder object, rotate it, grab the whole lot as a mesh. Then you could either check yourself for tunnel wall polygons and get rid of the leftovers, or do it in a modeller. Personally I'd prefer to have these boulders waiting for the next tunneling job, have them loaded as meshes, make a new limb and orientate it how you want, then combine it all and get rid of all that is not tunnel. There's a couple of things you can do when getting rid of the chaff - vertex light map for example, so things can get really dark - or even making stalignites that grow over time and drip water, if you were that way inclined.