Software UARTs are the answer as long as you have the processing power to do it in real time. I'm using 16F628A devices which are similar to the 877 in performance and use the hardware USART at 38,400 bauds and a software UART at 9600 bauds simultaneously without problems. If your other software routines make it too slow to emulate a UART, look at the MAX3100 device as a 'bolt-on' UART, its very easy to use and connects via microwire which is simple to control and not dependant on speed.
Brian.