C programmers (including me when I'm lazy) will often simply allocate MAX_PATH characters for a file name buffer and not think about it.
Interestingly, while that problem doesn't exist in .NET, and so you'd think that .NET would finally support long file names by default, Microsoft actually goes entirely the opposite direction: the BCL strips out any leading `\\?\` in paths to force you to stay at MAX_PATH or below. The more things change...
Secondly, if you use 20 version control systems, you're doing it horribly, horribly wrong.