A command block should be able to tell who set them off, and do the command on them, to go with the choices of random, nearest, and all. It could be @s (for set, as in 'set off'). I don't see this being hard to implement, and could be very helpful for adventure maps. Although nearest player could work, it could mess up due to one player being closer when he/she shouldn't be. Thanks for reading.
It IS hard to implement.
http://www.minecraftforum.net/topic/1413657-more-functionality-for-adventure-mode-control-blocks/unread/