I thought of that, but the nurbs code is isolated in a small "draw" method with no matrix manipulation whatsoever (on my part, anyway). All of my modelvew code is in another module that has been working in other apps with no problems for some time. By default, the GLU nurbs tesselator does a lot of "level of detail" work - polygon edges are sized in pixels - which means that it is probably manipulating the matrix stack itself. That said, I am doing refinement based on model space, not view space, by calling glu.gluNurbsProperty(nurb, glu.GLU_SAMPLING_METHOD, glu.GLU_OBJECT_PATH_LENGTH, so I wouldn't think the matrix stack would come into play. It does suggest that I should query the depth of the matrix stack after each surface is drawn and see if it is getting deeper for some reason.
This sounds like a glPushMatrix()/glPopMatrix() issue. Check to make sure you aren't pushing something somewhere and not popping it back.