When I finally did break out the fiber tester and test each part of the run I found that one fiber strand in one cable was eating 30 dB of signal ... about 20 dB more loss than the equipment will put up with. The only good part of this scenario is that a bad fiber cable makes a fine pull-string for pulling in the replacement cable.
Oh, and I crashed all the phones in the building for fifteen minutes 'cause I'm an idiot. That is, I miscounted slots on the main switch and instead of configuring two idle gigabit ports for the subnet I needed, I configured the two gig ports on the next card over -- which happened to be feeding the two satellite closets in the building and all of their phones. Oops.
As my grandmothers would both say, "haste makes waste." Which explains my getting home an hour and a half late.