I'm getting around it by clamping z values between the eye and the near clipping plane to the near clipping plane, that way OGL's clipping doesn't mess it up. There are some z-buffering issues caused by the z clamping, but I believe I can fix it by clipping triangles to the near plane internally, saving the triangles that are clipped off, and clamp z on those. That way the parts of the triangles that are past the near plane will still have correct z, but those that are closer than the near plane won't get clipped.
Orkin