For the server, adding click-on actions is pretty easy (intercept onClick or onInteract events, don’t have the API in front of me). Adding blocks is more problematic as that requires client modification as well as a server plugin (most servers don’t like doing that, as you now depend on the user installing the mod correctly and everything being updated pretty promptly or you get left behind the version curve).
Great example of plugins that work with interaction of blocks are WorldGuard (checks to see if a player has permission to interact with a block in an area, cancels the action if not), DeadBolt (using signs, checks to see if the player has permission to interact with objects, if not cancels the action), and Stargate (sign is clickable to scroll through destinations, button used to only activate the gate but can now be connected to redstone to do other things…. still no redstone activation of the gate, though 🙁 ).
I’m slowly updating my blog @ http://bukkit.coder-j.net/blog with how to write Bukkit plugins; one more on permissions, then I’m moving on to basic object interaction.