I think you're doing it the good way, even if I would begin by drawing the 3D scene and then add the 2D part, because it's possible the 2D items you drawed first will be overlapped by the 3D elements.

Secondly, for you stange drawn state, perhaps you forgot to set UseColor(1,1,1) before drawing, because the 2D sprite colors are modified by the UseColor value (for example if you set UseColor(1,0,0), only the red part of the sprite will be visible).
Are you sure you didn't enable alpha blending ? (this is done by glEnable(GL_BLEND), and by choosing a blending mode : glBlendFunc(...,...) ). If this is the case, i could be the reason of the odd drawing...

Abened