In some C# code I have taken over (in Visual Studio 2005), I have noticed that the assemblies are all signed with the same .snk
file.
In addition to existing answers, I would add that you must use the signing when your DLL is going to be dynamically loaded and consumed by 3rd party software. It is not technical requirement per se but it is rational, therefore very common, that the 3rd party software producer enforces such policy due security concerns.
Examples where you must sign an assembly: