Protection GPIO of controller
The protection circuit you linked to should work fine for both high and low speed I/O. You might even get away with just a Zener diode and resistor, as the Zener will act as a diode for negative voltage. However there are a couple of caveats:- 


Low voltage Zeners tend to have quite high impedance and a soft 'knee', so the clamp voltage may vary significantly with sink current. To protect against +18V with a 100 Ohm resistor in series the Zener must pass ~140mA. The 1N5913B is a 3W 3.3V Zener with Izt of 114mA, which should be sufficient. However it still draws significant current at somewhat less than 3.3V, which might affect a sensitive analog circuit. 
If -18V was applied the Zener would have to pass about 170mA and could drop over 1 Volt. Putting a diode across the Zener relieves it from having to handle high negative current. A Schottky diode is best because it has fast response and lower voltage drop than a silicon diode.


An alternative to the Zener is a PNP transistor acting as an active clamp. The transistor would shunt over-voltage current to Ground, and clamp the I/O pin to about 0.6V above Vcc. (to protect against negative voltage you would still need a diode).



For I/O that doesn't mind high series resistance you could simply use a higher value resistor and put clamp diodes to Vcc and Ground. Using a 2.2K resistor the application of +18V would inject less than 10mA into Vcc, which should be safe if the MCU etc. draws more than this (if not then you could put a 3.3V Zener across the 3.3V supply).