My usual method of reprogramming AVRs (so-far limited to ATtiny13 and ATtiny2313) is to disconnect the chip from the host circuit, plug it into another breadboard with all of the ICSP hookups in place, program, then replace. However, I keep hearing that one can program the chip in place (which is, I understand, the whole point of ICSP).
Are there any special hardware considerations one has to take into account before programming the chip in situ? For instance, I worry that the ICSP process may damage circuit components connected to the same AVR pins which are used for ICSP. Does one occasionally need to add diodes or some other kind of buffering to protect these components?
I know this question sounds kind of vague, and I guess it is - but I've not provided details of my particular circuit because I'm interested in more general rules of thumb. I.e. does one never have to worry about this, or does the answer really depend on the particular circuit the MCU is a part of?