Canon's EOS Utility for their DSLRs allows you to designate which folder to upload photos. It will also create a new sub-folder based on one of any several criteria such as Shooting Date or Time. One of the options is for folder number, another is for prefix. (Some newer Canon models allow you to change the prefix of the images your camera creates, older ones do not in which case you are stuck with with IMG_xxxx.jpg (or IMG_xxxx.cr2) for photos saved in sRGB color space and _MG_xxxx.jpg (or _MG_xxxx.cr2) for photos saved in Adobe RGB color space.)
Prior to taking the photos all Canon DSLRs will allow you to create a new folder on the memory card and place subsequent shots in that folder. If you create the folders in the camera on the fly the numbering goes in sequence: something like 100EOS7D, 101EOS7D, 102EOS7D, etc. But if you use a PC to create the folders ahead of time you can number them anything you desire within the folder naming parameters: 3 numeric digits followed by 5 alphanumeric characters consisting of upper or lower case letters, numbers, or an underscore. Note that only one folder per card can contain the same 3 digit number that begins the folder number. If one of your folders was 101ABC_D, you could not also have a folder named 101W_XYZ but you could use 102W_XYZ.
This gives you the option of creating a separate folder on your memory card named for each client with the first 3 digits ranging from 100-999 inclusive for a potential of up to 900 unique folders. You could then name the 5 letter/number/underscore combination to help designate the client's name that belongs to each folder. For example, you could use something such as 101ACMEP for a client named 'Acme Products', 102GenPr for a company named 'General Products' and so on. Each time an employee needs to take a photo they would simply select the correct folder for that account to save the photos to and then take the photos. You could take several photos for one client, select another folder for another client, then later come back and add more to the first client's folder. You could even create multiple cards with the same folder structure and EOS Utility should sort photos taken with different cameras into the same sub-folder on your computer. If the image numbers were duplicated, it would simply append the second one, so that if there was already an IMG_0001 in the folder, the next time you tried to upload an image named IMG_0001.jpg to the same folder it would be renamed IMG_0001_1.jpg, then IMG_0001_2.jpg, and so on.
When uploading the images from the camera to your computer, you would simply set up EOS utility to upload all photos to a folder named, for example, 'clients'. You would also configure EOS utility to create a sub-folder based on the name of the folders on the memory card and place the photos from each folder on the memory card in the correspondingly named folder created inside the 'clients' folder on your computers hard disk. If the designated sub-folder already exists within the 'clients' folder, EOS Utility would add the new images to the preexisting sub-folder.
The bulk of the difficult work would have to be done once when setting up EOS Utility and creating memory cards with the appropriate folder structure. I would recommend saving a disk image of the memory card with the folders set up and periodically reformatting the card(s) in camera and then using the computer to write the disc image to the card.