Ummmm. Being a finance major...that isn't expensive at all for a 2004 BMW. They've taken in consideration your age, sex, occupation, income, and past history.
I'm considering a 2003 M5, 2007 550i, 2004/2005 645i and I'm expecting to pay around $3,000-$4,0000 a year. Male, 22, clean record, good occupation, well paying job, and sports sedan. Expensive.
To reduce your insurance....get multiple insurances with the same company. Car insurance for all your vehicles, house/renters insurance, and if you get all those, you are qualified for an umbrella. Those really jack your car insurance down ALOT!