Hi cg, I got this from another forum;
But the main cause for short battery life is the battery sitting at less than a full charge, which leads to cell plate sulfation. Very short term sulfation is reversible when the battery reaches a full charge again, and even medium sulfation is reversible through a designed period of overcharging while controlling temperature, but if the battery sits on a short charge for extended periods the crystalline formation on plates permanently hardens and forever blocks future charging.
And other than a malfunctioning alternator or voltage regulator, or a parasitic drain from a malfunctioning power consumer in the car, a low battery charge is almost always the result of driving habits. BMWs use a huge amount of power, and a seldom used car, a car that experiences multiple short trips or a car that is driven slowly in stop and go traffic will not fully charge the battery. And the ECM in conjunction with the alternator can only work within the limits of engine speed and ambient temperature to optimize charging (excessive battery temperature when charging at high voltages causes water in the acid solution to be boiled away).
Batteries are not that expensive and whether you get two, three, five or seven years of life there is not a huge difference in annualized cost. For most people the annoyance of being stranded is a far bigger issue. By occasionally measuring your battery voltage after the car has gone to sleep (using a $5 multimeter) you will know if you are undercharging the battery and can expect a shortened battery life.
If driving habits lead to an undercharged battery, the best solution is a battery tender, which keeps the battery fully charged and prevents sulfation, but generally requires private garaging of the car. If you cannot conveniently use a battery tender, then after two years have your battery tested for free at an auto store every six months to get an early warning of impending failure and replace it before you are stranded.