Note. Unity 5 introduced the Standard Shader which replaces this shader.
Diffuse computes a simple (Lambertian) lighting model. The lighting on the surface decreases as the angle between it and the light decreases. The lighting depends only on this angle, and does not change as the camera moves or rotates around.
Generally, this shader is cheap to render. For more details, please view the Shader Peformance page.
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.