A big problem with your circuit in post #1, is that the voltage threshold between a 1 and a 0 is the 0.6V VBE turn on level of Q2. Which means that if you have more than 0.6 volts of difference between the two ends, you wont be able to get any data through.
One big reason why the RS232 standard used +/- 12 volts, was to be able to send data reliably even when there were a few volts of ground difference between two pieces of equipment.
For your application, I would sugest an opto coupler at the receiving end. The transistor at the sending end turns current through the LED side of the opto on and off. Because it is a current instead of a voltage, a couple volts of difference between end points does not interfere with the data. If you tie the LED in the opto to +12V (through an aproprtiate current limiting resistor) you should be able to get reliable data with up to ~8 volts of end point ground difference. Or, if you use a pair of wires and loop the + side of the opto back to the sending end, you now have total galvanic isolation between end points, allowing the difference to be thousands of volts.