Collectable items are a fickle thing; anything marked with MF_SPECIAL and nothing else that defines how it interacts with the player will just go to the ring sparkle states and play the ring collection sound when touched by a player, regardless of any other information in the object's infotable. So you really can't use the game's existing collectable functionality for what you're trying to do.
However, you could instead make the object a spring with no horizontal or vertical force, and set the painstate so that it does whatever you need it to do when touched and then disappears before it can be "sprung" again. Either that or you can remove MF_SPRING after it gets touched with A_SetObjectFlags.
...of course, this would mean that solid objects could also "collect" the object, but you can work around that with level design.
EDIT: Nevermind, it seems springs still affect the player even if it has all forces set to zero. x_x