You are right,
The (classic) RS232C standard was developed from earlier RS232 standards over 25 years ago and things have moved on a lot since then. Originally RS232 defined 3 signal states, Mark, Space or undefined - undefined was any signal between about -3volts and +3 volts and included everything in between.
This was required because some wires in a RS232 circuit are not required to be connected and were thus left to float (but possibly connected at one end of the cable meaning the wire could work like a long antenna which could mean their voltage could change a little from 0v due to induced voltages from adjacent wires etc.

With the advent of modern computer devices working at mostly 5 volts [or less] a more flexible approach to classic RS232 signals has developed (in a de-facto way) whereby any postive voltage [typically over +3 volts] is treated as one state, any thing less than than that the other state.

This works for most laptop serial ports now and Dallas Micro (now part of Maxim) have a DS275 Serial Transceiver chip that works exactly this way - it either outputs +5V (or whatever the input power voltage is) or 0 volts [it can produce -5 volts or whatever by stealing power from the incoming data line when its not transmitting but the chip itself will not generate the -ve voltages.
It works the same when receiving - it will work correctly with 0 volts as meaning the opposite of +5Volts.

Now we get a bunch of modern devices that use 5 volts TTL serial bus'es (like Sony's Slink to name one, and probably Unilink is another). These send data in 'serial format' and sometimes actually in asynchronous format with start,stop and parity bits - but only at 5 volts (often with inverted logic)