You should be able to do this, there are script commands that deal with using items. Solostrike's Intermediate Article deals with this a bit:
http://chooseyourstory.com/help/articles/article.aspx?ArticleId=46
$ITEMSTATE is a script command variable, that holds the state of an item. While in Advanced mode, making sure you Edit Features for you game, and have scripting and variables set to Advanced.
This then puts a system number next to your items on the items page for your story. To use the $ITEMSTATE command, you just add the number of the item onto the end. Ie, $ITEMSTATE5 or $ITEMSTATE22
If an item has a state of '0' it means that the item is not in the player's inventory, but is at its starting page.
If an item has a state of '1' it means that the item is in the player's inventory.
You can simply write a script command, saying: $ITEMSTATE5 := 1 and you will be changing its state, and putting it in the player's inventory. You can also use $ITEMSTATE5 := 0 to remove an item from their inventory. So, yes, you could do this by link instead of having the player go to a page and click on an item picture there.
However, at the time of this post, this command does not work when placed in links. I've tried it numerous times, and it comes up with a major error. I keep meaning to post it as a bug, so I'll go and do that right now. Once it's fixed, you can just do what I said and it should work.