The way I do it:
I have a texture with all letters on it, made in Gimp.
I have a Blender project with one quad per letter and the UV-mapped letter from the texture mentioned above on it.
I export this project into the 3D format my engine can import, and then have quads with letters on them in my engine, in DisplayLists, to be precise. When I want to place a letter, I do glPushMatrix(), transform to where I want to place the letter, call the DisplayList of the letter to draw it and do glPopMatrix().
This is the way elias4444 described in his 3rd sentence above, and it works fine, especially for consoles and the like. You can even use letters of arbitrary width that way, or dynamically resize, skew, distort letters. You can even apply some shaders to them or switch the alphabet texture if the alphabet textures use the same layout.
Note that I disable GL_LIGHTING temporarily to draw a letter so that it isn't affected by lighting and that my alphabet texture is a PNG with alpha values for transparency. I hope I didn't forget anything.. Meh, you'll figure it out, it's not that hard.
This way of putting letters on the screen has advantages and disadvantages; but it gets the job done.
Also note that I didn't implement it that way in the Tetris clone mentioned in my signature; this is a very old project with some weird ways to do things in it. We all started somewhere.