Let me start off with my computer specs:
I am using a 2012 Asus Laptop
Intel Core i7-3630QM CPU
@240.ghz
24GB ram
Nvidia 660M
Quite simply in general I do NOT lag in cyrodil. At all.
I play a melee templar. Favorite thing to do is to leap into the middle of a zerg like an absolute mad man and charge. I play lone wolf an full zerg vs zerg. Coordinated group and bridge farm. Nothing.
HOWEVER. There are situations where I do lag and things that I think are causes/solutions.
I play with the same group of friends and have for years there are about 6 of us in difference parts of the country who play together non-stop everyday.
We have come across a few things we think are major issues.
1. The graphics. The biggest factor I can find is the particle limit. Many people attempt to turn graphics down but don't bother turning down the particle limits.
Let me make ONE thing clear:
I DO NOT THINK THE GRAPHICS ISSUE IS ON YOUR END OR YOUR COMPUTERS END I DONT CARE IF U HAVE A GTX10MILLION
If my or any of my friends but one approach a fort under heavy siege and our particle limit and textures are not set to low we will instantly be booted from the server from approach.
Sound familiar? It should.
My theory is that upon approaching the fort your computer requests the server for info and all these trillions of particles attempt to be communicated and the server basically says F this and boots you because it is simply too much to communicate. I do believe this is both a mixture of a limitation on your internet AND a limitation on ZoS's server to deal with.
I have one friend who plays everything on max settings max particle limit and he NEVER dc's. The difference? He has actual fiber optic internet. I believe that his internet is able to communicate clearly with the server and thus doesn't get the boot.
However turning all ur graphics down and your particle limit makes your computer not have to ask for the info and thus the server does not flip it's lid.
2. Something about combat storage.
This one we have tested EXTENSIVELY. Have you ever had an issue in cyrodil where you begin to get VERY long load screens EVERY time you load?
We have narrowed this down to an issue involving storage of combat data. Either from the game itself or from an addon. What is happening from what we can tell is something about the game is caching combat data and the more data stored the faster it begins. Restarting the game does not clear this cache. ONLY a hard boot of the entire computer system fixes this. it is not about time played but intensity. If I do overland quests for 8 hours I can potentially not get the issue however if I do skyreach farms for an hour it can begin immediately. 3 raids? near instant.
A hard reboot solves this problem in 100% of tests we have tried for all of these.

These are the settings I play in cyrodil. I do not use these in pve or raids and I will admit that YES they are ugly and YES they are not what I would like to do but at the end of the day a 2012 laptop with a GTX 660M and I don't lag AT ALL means there is something more to this than just on ZoS's part.