Overview
Shader interfaces are used in order to generate shader permutations automatically without the need to write special case shader programs. For example, all shaders using lights from the scene (e.g. per-pixel phong shading) use shader interfaces, for abstracting light based calculations (light vector, shadows, attenuation, etc.), allowing for faster implementation and testing of (e.g) new shadowing algorithms. The same base shader is used, with all its permutations generated on the fly automatically by the engine, when and if they are needed (e.g. the shader is generated the first time an object gets in the light's effective area).
More informations about the connection between shaders and the renderer can be found here.