Many projects with many files all uploaded by humans on one server will get messy, by definition. Even if they have a structure, when 1000 of people work on projects there will be made mistakes.
How do big design companies share files?
Do they have a tool to automate this, if so which one?
At my current workplace we use a version control system. To be exact, we use Git + Bitbucket with the LFS (Large File Storage) extension. We also use a graphical diff plugin that lets us see a quick preview of the differences between 2 versions of a given PSD. It does a pretty good job at keeping files safe, knowing who modified what and when, and retrieving previous versions. We ask designers to split their projects as much as possible in order to avoid having to download 2GB of PSD files for a single logo. It doesn’t completely solve the problem of having 2 designers work on the same file at the same time and do incompatible changes, but it does make life easier for the most part and help keep the space usage (relatively) low.