sorry man, i would have got back to you sooner, but yesterday was my birthday, lol.
ok... i looked up that timer, it is most def your problem. water heater timers are built to switch what is called a resisitive load, not an inductive load.
what does that mean? its complicated, and would take several pages to give a detailed explanation, so Im going to give you the cliffnotes version:
part 1
Everytime your timer activates, to switch on, there is a massive surge of electricity, called an inrush current. This is because oif the nature of electricity, when a circuit is first completed and energized, there is no electrical resistance, which allows for literally 100,000's of amps to travel through your wiring. this happens and is over in aprox. .001 seconds. this happens with every electrical device, with no exceptions. since your timer is not rated for an inductive load, this inrush will damage the conttact points of the relay inside the timer, causing a serious decrease in efficiency, overtime the timer will eventually suffer a catostrophic failure and cease to function because of this, as well as drawing more power than would typically be used for operation of the lights. it seems to me 80% of timers fail in the on position....
part2
when your timer activates to switch off, because there is an inductive load instead of a resisitive load, inside the timer, there will be an arc (spark) as the timer tries to break the circuit. this arc will mess up your timer cycle, it is why your timer is drifitng, the timer is being held energized by this arc, which in turn creates a cumalative error over time, causing your timer to drift a few seconds every cycle, adding up to minutes over a month cycle. Another thing to consider is that IF the coil (the actual timer inside the timer) is designed to be using 240v, and he (your electrician) is only using one leg of the 240v to run the timer, this will cause all kinds of problems.
part 3-
get a better timer. timers/relays are like cars, you really get what you pay for!
for 2.2kw (2200w, 1050 per ballast/fixture and 45-50w per fan) of inductive load, you need either an electromechanical time clock, or a solid state relay timer with an ice cube relay to switch the load.
if I were going to use a timeclock for your application the simplest one would be the model 1102 tork timeclock, found
here.
now using an ice cube relay and a solidstate timer will free up alot of space, there smaller than your average time clock. they way to do this is to use the timer to control the coil of the relay, with the relay acting as the switch for your lights. when the timer is energized, the relay coil is energized, allowing your lights to come on. almost any cheap time switch available @ homedepot or radioshack or whatever will work just fine for this, but not the timer you already have, unfortunatly.
ice cube relays can be found
here. you want one that is rated for 15amps inductive with a 120v coil, like the model number
784-4c-120a do not forget to buy the relay base/socket! it costs like 4$, without it the relay is useless
(the socket is what the wires connect to)