First...I do not anticipate purchasing Solidworks vault or management system.
We make tools but sometimes also engineer machines or production modifications to equipment. This discussion mostly has to do with the engineering process. In the past I have just created an assembly and then given parts in the assy a name that made sense to me like "Infeed shaft bearing". These projects also use many 3D parts from outside vendors like McMaster (greatest website ever) or others. In the end I have a folder that contains a jumbled mess of assemblies and parts that I created as well as outside parts that I downloaded from vendors - a big mess to come into if you are looking at your own work four years later or you are picking up something that someone else did.
So...how to organize this mess taking advantage of what you all have learned from blood, sweat and tears and not making things complicated?
The first thing I would say is that you probably already own PDMWorks as it comes with SolidWorks Pro and Premium. That being said:
My initial thought is that you guys are more of a job shop than an OEM, so you probably don't utilize an ERP/MRP type system? I'll use that assumption in my answer...
I would implement a 5-6 digit part number system just to prevent having two parts with the same name. The filename would be the part number and you would then put the part description in the description field in the custom properties dialog. Using a spreadsheet, you can have your part number list with the associated part names/descriptions. While it may add a layer of management, it'll also aid in the finding of parts, via search, versus creating copies. If you implement a naming convention that everyone can understand, it'll make searching for potential common parts easier. One that I was introduced to many, many (many, many, many) years ago was: Noun, adjective, further descriptor. For example: Screw, HHC, 1/4-20 x 1" or Angle, Steel, 1 x 1 x 12".
I would have some sort of common parts library to store the off-the-shelf parts you use (screws, bearings, widgets, thingamajigs, etc), especially if they get used over and over. Again, it helps to prevent replication.
I would then utilize job specific folders for the parts that are specific to the job. There are those who would suggest that you assign some sort of job-specific number to each file, but I don't think it's necessary. Just grab a block of numbers when you start the project and start designing.