For me personally, i can counteract this with the "Set.playerlevel" console command. This does not effect my roleplaying at all, so long as i only set myself back a single level at a time, and allows me to continue fighting enemies i feel i should be fighting. Essentially, it puts ME in control of what sort of enemies I fight, regardless of what my actual level is.
Quick example: I'm in town, trading and making potions and whatnot. I love the idea of my character being a smooth-talking poison-making sleazebag, so i keep doing this for a while and end up gaining a level, taking me over one of the leveled AI thresholds. Now, if i had focused on combat instead of other skills, this wouldn't be a problem, but because i focused on speech instead, they will all be much harder to kill. So I use set.playerlevel to reduce my level by one!
The reason i advocate this is because I've found that it does not disturb my RPing nearly as much as any other method. I can either take 5 seconds to do one console command, or I can spend the next several hours dealing with the results of enjoying a non-combat role in the game, and I've found that the first option lets me remain far more immersed than the second, as well as avoiding internal problems with changing the difficulty slider.
There are several minor side effects to this; you will end the game with more perks than normal, and more magicka/stamina/health, as well. This may or may not be a problem for you. If it is, there are setattribute and removeskillperk commands for the console, requiring at most a minute or so of lack of immersion to return to the better game experience you get in reward. Personally, I just put the extra perk only into the skills i managed to level, maintaining my RPing while allowing me to use skill perks that otherwise i would never be able to use.
I see this as in most ways identical to changing the difficulty slider, except with results that feel more balanced for your character. Make of it what you will.