There are a wide variety of input protection circuits.
Most of these protection circuits have historically been built out of discrete components. Some of them are now integrated into some "ESD resistant input" integrated circuits.
signal input protection
Alas, people outside the electronics world live in places that have "low humidity" and "carpeted floors".
Typically microcontrollers are placed in a box to protect them from such a hostile environment.
Alas, that box does no good if we directly run wires from the pins on the microcontroller to connectors on the outside of the box.
A variety of signal input protection circuits:
2 clamping diodes to plus and minus power rails
2 Schottky clamping diodes to plus and minus power rails
2 Schottky clamping diodes to plus and minus power rails, and a resistor. (All 3 components directly connected to the microcontroller input pin; the other end of the resistor connected to the outside world).
transistor buffer (Matt Pobursky)
power input protection
diode pointing from GND to +power input (protects against reversed GND and +power)
Reverse Protection Diodes (protects against reversed GND and +power)
resettable fuses (polyswitch)
5.1 V zener diode pointing from GND to +5V ("crowbar protection", protects against power supply failing or something else pushing input power too high)
"super reverse protection diode emulator" -- a circuit composed of a MOSFET, a zener, and a resistor.
... or some combination.