Why do uploaded files gets saved with an all-caps file extension? On my product site any uploaded images get saved with the .JPG saved in all-caps. I don't see the same issue on my local development machine so I would think it has to be a server issue? The live site uses NGINX.
Definitely not a server (nginx) issue, as the server does not do anything with the files (well, it transfers them bit by bit). Like Charlie already asked, do you use any modules?

Edit: To answer your second question, of course you can “force” lowercase extensions. But personally I wouldn’t bug your users with that, they should simply upload whatever they have. Instead simply alter the files extension before saving the file to disk/database.

hook_file_presave() seems like the correct way to do this. You would have to create a little module and have a look at the file variable that’s passed to your hook, then simply strtolower() the file extension.