Well, smoothing works using transparency, the edges are not either colored or not but they are ... well ... transparent. Take a look at these images:
As you can see, the right line is not smoothed, it's pixels are either totally opaque or totally transparent. The left line is smoothed, it's outer pixels are transparent.
You may have a look into forcing Anti-Aliasing in your program, AA is a Hardware/Driver feature that just manages the smoothing of edges (and, depending on the type of AA, other things). Remember that this isn't a feature of OpenGL, but of the hardware, driver and operating system. In general you request something like AA when you create your OpenGL-Context.