I would write i a little different.
Event: Unit aquires Item
Condition: [boolean] Unit has item of class(Itemclass of (Item beeing manipulated)) == true
Action:
drop item beeing manipulated
DisplayTextToPlayer(OwnerOfUnit(UnitManipulatingItem), "you already have an ietm of that class")
in addition to this you should group all items into different catgories
e.g.
weapons = campaign
armor = permanent
shields = rechargable
...
therefore you can simply check if the unit already has an item of this is that category and if it has, order it to drop the item it wanted to get.
PS:
I know, this is quite the same as written above, but i hope it's easier to undertand ^^