Out of interest, do you actually force them to follow pair programming best practice (e.g. periodic switching)? Or just put them in groups of two and let them at it?
Im not the person youre responding to but I have a similar experience and I usually let the pairs make their own decisions about how they work. I've found that to be many times more effective than "switch every x minutes" or interfering in any other way. Let them work it out. I only step in if there's a problem (students not showing up, refusing to work, etc -- which is very, very rare).