Create a lifecycle state for these files that indicates that they have been superceded. We use "Reference" as a file category and then "Obsolete" as the lifecycle state. This way you can make it so that the user can see the file, but cannot check it out (moving something out of obsolete requires elevated privileges).