Or have a kind of "graphic override".
Example of how it's down in Napoleon Total War
By default, the game engine look for a graphic file like
"Irrigation.png"
Then, if you have a civilization, add the name of the civilization as a prefix/suffix.
Exemple if you play has Britain and the engine can find "Irrigation_Britain.png", then it uses this specific graphic.
If you play as France, and there is no "Irrigation_France.png", then it uses the default graphics.
This way, in the rules, you can enter irrigation only once, but the graphics can be easily made specific to a civilization/culture with no rule changes.
Of you can allow in the rules to have different improvment, each with different bonuses, and then tell what civilization are allowed to build it.
Or have a generic improvment, but give bonus to each civilization, like "agricutural" gives a bonus to farms...
And fo course you can have different improvment levels with different techs...
So many possibilities