Basically this works without problems, maybe it just doesn't work with your code. The problem might be glRasterPos2f - maybe it just doesn't work with negative coordinates, which would make some kind of sense.
Anyway here is my texture drawing code that also works for negative positions:
// The parameters iLeft, iTop are the position (for example 0,0 or -20, -20 to draw it a bit in the negative area).
// fixedwidth, fixedheight are the texture width and height.
// m_height is the window height.
// ... bind texture etc.
// Draw quad (float format because its simply faster)
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 1.0f); glVertex2i(iLeft, m_height-iTop); // Top Left
glTexCoord2f(1.0f, 1.0f); glVertex2i(iLeft+fixedwidth, m_height-iTop); // Top Right
glTexCoord2f(1.0f, 0.0f); glVertex2i(iLeft+fixedwidth, m_height-iTop-fixedheight); // Bottom Right
glTexCoord2f(0.0f, 0.0f); glVertex2i(iLeft, m_height-iTop-fixedheight); // Bottom Left
glEnd();
// ... unbind texture etc.
the_visualist