My problem is that I can not distinguish the reason for error when the user atempts to upload a file that happens to be open at the time of the upload attempt, essentially this is a file-sharing error.
I know that you can distinguish the difference from the wrong extension and the max size errors by this post:
1) wrong extension
2) max file size
...as well as
3) file-sharing (while the file is open and upload attempted on it)
All three at once.
There seem to be solutions if you are using Silverlight, but if you are not, you do not have access to same objects and properties that you would if I was assuming the use of Silverlight.