>However, if an older version of the service is installed and we attempt an upgrade install, the interop dll does not get overwritten.
Most likely the DLL is in use and can't be overwritten. If it's a service in particular it might be in use from IIS (or whatever hosting executable is running the service) since it's always on.
What are you doing for the 'upgrade install' exactly? I suppose that greatly determines how the process of copying the files and checking versions occurs.
+++ Rick ---