... and if its any use, the script here - http://kimmscripts.wordpress.com/2011/06/07/multiple-notecard-giver/ - does multipage dialog handling which could be combined with Darkie's script if you have more than 12 notecards.
Note that this gives out notecards, but if you replaced the llGiveInventory() call in give_notecard with the call to start the notecard reading, you'd be pretty much there.
Also note the comments on why I didn't open/close the listen on demand. Aside, if anyone has a better way to handle multiple avs touching it, other than maintaining a stack of listens to open/close, I'd be interested in hearing about it
Kimm.