bootloader is getting corrupted - why?

OK, so I'm doing my own homemade arduino setup. I'm burning the bootloader onto ATmega8s with my STK500 & then using the Arduino software to reprogram homemade boards. My homemade boards consist of the ATmega8, a resonator, filtering cap & RS232 chip attached to a serial port. My problem is that once I begin to attach additional hardware to my homemade boards - ie: LEDs & sensors - the bootloader seems to randomly get corrupted or erased & I need to periodically but unpredictably reburn the bootloader before I can use the Arduino software to program my chips. Does anyone have any idea what might be going on here?

I should mention that the homemade boards are being used by novices & all sorts of funky things are happening - little shorts, frequent resets, etc.

Thanks for your insight & help!!

If you look at the Arduino schematic: you see that the ICSP port is just a reuse of normal digital lines. I don't know the choreography that happens on this port when reprogramming with the ICSP, but it seems possible that, if you were really unlucky in a noisy relay/motor-filled environment, one that allowed noise to enter the Atmega8's Reset line, it would be possible to reflash the Atmega8 without intending to, thus damaging the bootloader or any programs loaded onto it. I've had this happen myself - I didn't actually know what had happened until I tried reloading the bootloader onto Atmega8s that I thought were dead - reviving them completely.