Everything is possible.
Here's a script to make "custom bow" only able to fire daedric/ebony/glass/silver arrows. You should be able to adapt it to your needs:
begin bow_script
float delay
if ( player->HasItemEquipped "custom bow" )
if ( delay > 0 )
set delay to ( delay - GetSecondsPassed )
elseif ( player->GetSoundPlaying bowPull )
if ( player->HasItemEquipped "daedric arrow" )
elseif ( player->HasItemEquipped "ebony arrow" )
elseif ( player->HasItemEquipped "glass arrow" )
elseif ( player->HasItemEquipped "silver arrow" )
else; player is firing the wrong type of arrow!
set delay to 0.5
player->StopSound bowPull
player->AddItem VFX_DefaultBolt 1
player->Equip VFX_DefaultBolt
player->RemoveItem VFX_DefaultBolt 1
MessageBox "This bow can only fire daedric, ebony, glass, or silver arrows!"
endif
endif
endif
end