Personally I use FME to do stuff like this (but then - disclaimer - I do work for the company that creates it). The Data Interop extension in ArcGIS will also do this for you if you don't have the full FME.
So... there is a great example of reading photos and making them into Geodatabase attachments on our knowledgebase, FMEpedia.
Basically you need some form of ID to match the image to the feature (presumably the value of an attribute in the data). Then you can read a list of image files with the PATH format reader, like so:
...merge the data together (with the FeatureMerger) and simply write out the full filename using the attribute path_windows (or unix, or whatever).
The alternative method is to actually read the files, convert the raster data to a blob field, and write that to your output (i.e. instead of a link to the image, you store the image as a blob)
If the images are geotagged, then you could instead use a SpatialRelator transformer to be able to match them to the spatial feature using a spatial predicate like "INSIDE" or "WITHIN". You could use either of the above techniques (write a link, or write a blob field) in this way.
But I think that - whatever software you use - you must have some form of attribute or spatial relationship in order to be able to automatically match the photo to the feature. If not, then I think you are stuck with a manual process.