There's a built-in effect called "resist normal weapons," and there's a checkbox for each weapon saying whether or not it's "normal." By default only silver and daedric pierce this resistance. Enchantments go around it, but only the actual enchantment... a steel claymore with fire damage will do the fire damage, but not the steel damage.
You can check the box for any weapon in the CS, and with OBSE you can toggle it during gameplay, so technically the behavior you're looking for could be achieved. The question is just how much effort it would take to increase the complexity level so that, for instance, silver can hit a ghost but not a daedroth. Other than that checkbox and the item's text name, there's no record for what material an item is made of. It would be a challenge, but probably not impossible.
I think there's a new function coming in 0019 (could have slipped into 0018, doubt it but I'll check) which will help tremendously, especially with mod compatibility; currently you can script an actor with an OnHit effect (triggers on any weapon, doesn't tell you what triggered it), or with OnHitWith (triggers on one specific weapon, so you'd have to write such a block for every specific relevant weapon). There's talk of adding a function for use in regular OnHit blocks which tells you what the striking implement was.