I was going back and forth as I wrote it and thought that implementing a system-wide check for filenames that do not work on all operating systems was the best practice.  

Consider the user that creates the file on a Mac or Linux box and then uploads it to a server that is running IIS or checks it into GITHUB or CVS which is then later pulled down a Windows box.  Both of those scenarios will cause a failure in some way.  My approach was to minimize that failure.

I'm open to making this check Windows only if you feel this isn't a necessary consideration or want the user to be in control of their own destiny.  We already restrict users from creating files with characters that don't work on one platform but work on another and we prevent users from creating files with characters that don't work on web servers so it seems like the right thing to do. Plus we should be consistent even if Windows is in the minority. It also seems like it's a real small number of folks who will want to create a file named 'LPT1'.  If they really wanted a file named LPT1, they could just name it LPT1 in finder and we would be none the wiser.