Booting Arduino with rx active causes hang

Just to follow up on Daniel's comment:

I don't know how it's done on the official Arduino board, but on the do-it-yourself serial model they use a hex inverter (7404) chip to provide a pair of inverters, one used for serial transmit and one for serial receive. Perhaps you could replace one of the inverters with a 2-input NAND gate, and use the extra NAND input connected to a digital output on the Atmega8 to enable/disable the GPS serial input from software. You might need to add a manual switch to bypass this gate when you want to upload new firmware.