Why do uploaded files gets saved with an all-caps file extension?
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.