Hrhm, now that's an interesting idea.
Off the top of my head (and remember I'm not very good with UScript, so this is all very vague and conceptual), you might try doing something like whatever it is in a weapon's properties that keeps track of how much ammo it has...
An additional property for Degradation could work like the ammo counter in that, instead of it displaying remaining ammunition, an additional HUD element (or, probably better, a colour overlay / colour change on the weapon's HUD icon bakground) would change to indicate weapon degradation... or maybe a bar or something, maybe even going from green through yellow to red.
Depending on how fast you want weapons to degrade -- and this could change with selected game difficulty probably -- the rate of degradation could be something like 1 point removed from a possible 25 every three shots... And have it different for different weapons: The assault rifle is going to degrade much slower than the stealth pistol on a shot-for-shot basis. Or have it relative to # of reloads, but that could get messy for players like me who reload constantly.
Basically, my advice would be to look at how ammo management is done and trick something similar to that. When degradation is complete, the weapon cannot be fired regardless of ammo... sort of like an Out Of Ammo situation, except without having to be out of ammo.
Scripting up a repair unit or something wouldn't be all that hard, either. It could probably be just like finding a fresh clip of ammo, except instead of refilling the gun and allowing it to be fired again, it removed the degradation. You'd also want to code it up more like a weapon mod or other "drag it onto the weapon" thing.