John,

when RS232 (V.24) was designed there was a good reason for using +/- 12V Levels.

If you want your product to be compatible with any other RS232 (V.24) Device
you should have level-shifters (and stick to the specs).

If you want to connect 20 (or more) devices to a bus
with almost no limitation in bus lenth
(with proper termination)
RS-485 is a good choice.

...has anybody out there found a PC or MAC or UNIX machine that will not communicate with a PIC directly?
This is not a matter of the operating system, it is a matter of hardware design.

(...and I have found several boxes with really bad designed interfaces)

There is no free lunch:
Of course you can make your interface more tolerant
(in terms of voltage levels),
but at the same time you make it less tolerant to failure.