Cycles: Procedural to create a fixed width outline around materials for simple cartoon effect

Pretty new to Blender and most especially cycle material nodes.

I've seen one or two carton shaders that produce outlines around a flat material for a cartoon effect. However, they often seem to vary in thickness depending on angle, geometry or lighting or they scale with the object. And usually use a shadow tone between too. This isn't what I'm trying to acheive.

What I'm trying to acheive is a fixed (say 1 or 2 pixel) border around the outline of any object. Being able to set thickeness for different materials for emphasis (background v character) or even colour and also to outline the boundaries as materials or features meet (i.e. clothes, hair, skin).

I've experimented with texture mapping, geometry etc. but to no avail. I had hoped fresnel might help but I can't get it into a uniform thickness line right on the edge.

So any suggestions or tutorials that might point in the right direction? I'm keen to learn but with so many options and combinations, I feel like a monkey at a typewriter randomly mashing keys to produce MacBeth...

Thanks in advance.