All the basic maintenance on your E46 can be done at home with basic tools and products that can be bought at regular auto parts stores, online retailers, or even the dealership.
The CDN$350 is maybe 50 for the oil, and then the rest is to pay for their overhead and overpriced labor.
Even if you are not very technically oriented (or lack the time, tools, or space), you should be able to find an independent mechanic who specializes in BMWs or maybe Euros in general. Check the regional forums and your local phonebook for such places.
You will not be diminishing the future value of your car (at least not nearly as much as most people would think). Make sure you keep your own records of all the work you do on your car, including invoices and receipts for all parts you buy, taking note of dates and mileage, and definitely include all records of work you have done at any shop. The dealerhips often have a special promotion soemtime during the year, when they charge really cheap for a general inspection. If you want to show a future buyer that your car is in tip-top shape, then it wouldn't hurt to take your car in for when the dealership has such specials going (I paid $22 last time for mine). Then you can add BMW dealerhip documents to your portfolio that say your car is functioning well.