Apparently the mail(1) and battlestar(6) source code caused a problem when checked out onto a NTFS volume. Sascha Wildner fixed it, and Alexander Polakov found an explanation as to why. How long has this problem been around? Well, look at the email addresses at the end of the man page for battlestar(6), for instance, or guess how long mail(1) has been around…
This problem has been around since MS-DOS 1.0, if not contemporary versions of CP/M which immediate preceded it. In MS-DOS, device names are not file names, as they are in Unix. They’re special tokens, checked for explicitly by the API. DOS maintains a device list which, upon every attempt to open a file, is consulted to see if a device is being opened instead of a regular file.