I'm currently reading through the new Perl & XML book, and I must say that XML is a lot more flexible and useful than I'd have imagined, and it seems like it'd be suited for this task.
You could even design a simple DTD for it, assigning things such as a
<dialogue>tag that needs attributes of character - you could even split up the acts into their own parts of the tree. Here's a quick ad-hoc sample that comes to mind (just from somewhere in the middle, not including a DTD or the root element)
<act number="2">
<stage-direction character="Fred">
Enter, stage right
</stage-direction>
<dialogue character="Fred">
Man, it's hot out there!
</dialogue>
<stage-direction character="Fred">
Wipe forehead
</stage-direction>
</act>
It could just be that I'm loving this new book, but it seems like XML would be the markup of choice here, and you learn a lot in the process.
~Brian