I tried to dig the data files for a variable that sets at what skill level the guards start commenting on your skills, but couldn't find one. It's probably set in the dialogue itself. Can't wait for the Construction Kit.

If it follows the same methodology that Morrowind and Oblivion did, then yes, the elements that control who says what and when are associated with the dialogue entries themselves. It actually works backwards from how it seems like it should.
In games like Neverwinter Nights 1, conversation files are associated with specific objects and they are designed to branch out. Branches can be hidden by setting conditions. If I wanted all the generic male NPCs in a town to reference a common conversation file, I would build the dialogue tree and save it as something like town_m_common. I could create one NPC character and attach that file. Edit a copy of it and change the appearance only. Do that several times to have a variety of townspeople randomly wandering around. They would all carry the same dialogue because I created the subsequent ones from the main one. I could do the same for random female NPCs with a conversation called town_f_common. I can also set multiple start points of a conversation and set their condition based on whatever criteria I want. Such as if the player character is male or female. What race the PC is. What class. What level... even a condition to see if he or she is wearing a specific item. I'm sure that the data is filed within a NwN module the same way TES has handled it, but editing conversations in NwN is far more intuitive than it has been for the past two TES games.
With at least Morrowind and Oblivion, every single line of dialogue is in this massive list. You cannot tell just by examining the dialogue who it is associated with or which branch of a conversation it is. But each piece of dialogue can have conditions set for it. And the more conditions that are set, the more convoluted it becomes. So when you take into account the massive number of conversation entries that occur along with those that are specific to a quest, it really becomes a pain.
I don't know for sure how it's being handled for Skyrim, but I wish they would make a more intuitive way of constructing Dialogue that doesn't require weeding through thousands of entries.
Don't get me wrong. TES's dialogue system is very powerful. But if conditions are not prioritized correctly, it can cause all sorts of wierd things. First thing I am going to do when the editor comes out is go through and find the random NPC comments and identify all the common ones. I'll create a dummy object with a varriable called "alreadysaidthat" set to zero. and stick it in an interior cell that cannot be accessed. The priority condition on those random and repetitive dialogue entries will be that alreadysaidthat=0. I'll set an action so once it plays for the first time, it sets alreadysaidthat=1. I'll leave generic greetings, like Hello..., Need something?, Can I help you?, and that sort alone. We don't want the NPCs to never say anything.
I'm also going to add a global varriable called plotnpcspeaking and set it to 0 by default. When plot-related dialogue is occuring the first line of the conversation will set this varriable to 1. the last line will be a silent line with a command to set the varriable to 0. ALL random NPC dialogue will be made to check the status of this varriable, so it will keep them from talking over the plot conversation.
Of course, there's probably a lot more to it than that. And if someone beats me to it, then more power to them. Of course, Bethesda could have done this when they were building the game. I can't believe that as they went around playtesting their work that these dialogue issues didn't stick out like a sore thumb for them.