I am at the same point here. I want to store static data for my game, but my options seemed to be setting up an external file (XML, JSON) and loading it into variables or dictionary keys or just hardcoding it. I decided to go with the latter, and I just use event sheets per level to set everything up. It's pretty much the same amount of overhead, but everything is in-app, so my workflow is a little tighter. The downside is that it's less elegant to edit than a text file. It is easier to read dialog flow though, since I can see the text in the event, rather than just some key ID being set.
The ultimate would be to allow you to set dictionary keys before run-time.
I'd love to hear of any successful cases of an elegant C2 dialog system. I couldn't find any in my searches...