I had a similar issue once, and the solution was to organize files in a more complex directory tree (it can be automated with scripts). In particular you can leave the flat space to the users, with a periodic-ally script that re-arranges files let say every night.
locate does not check the real existence of the file, it reports the information about which files were present when it ran, so it can give you bad results in case of deletion or in case of last added files.
Depending on your aim you can even consider placing meta-information about files in a database, but this become a quite complex solution (not difficult), so my first suggestion is to (automatically) arrange the directory tree.