Your lease should spell out who is responsible for leaks, repairs, etc. A lease is a binding contract, so the amount of money the landlord is holding should not be relevant to whether or not they fix things. A bad landlord will be a bad landlord, no matter how much money they have in the bank.
No, it's not excessive for a landlord to ask for 3 months rent up front if you have bad credit or a spotty rental history.
From the landlord perspective, he/she uses your credit history to determine how likely you are to pay your rent - if you make $50k and can afford the rent, why aren't you paying other bills? (Everyone has extenuating circumstances, I'm not beating you up, just giving you the other perspective)
The landlord has made you an offer - you can try to negotiate this down to 2 months or work with him or her to come to some other mutually beneficial terms.