there are many banks that will give you an account for a small annual fee for cards etc. Usually the Cajas operate these kind of accounts. Cajamar is a very good bank (I am not with them but up here they are very helpful, have no account charges whatsoever and even do free money transfers at good rates) Banc caja also offer a fixed annual rate.
Generally though if you question any charges you may be surprised to find they disappear. I once got charged €400 for the privelege of putting €10,000 cheque in my account. When I queried it and asked for the cheque back to put into another bank, they reduced the fee to €25. I told them to give me my cheque back as I did not agree with charging me for them using my money when so many banks around will happily let me put it in for free. The charge was subsequently dropped.
The banks play on the fact that most foreigners will accept small charges because they know no different. Over a period of time these small charges can add up. So question everything and who knows what you might find. If not change banks there are many who would love to have your business