More common causes:
Insufficent voltage to starter motor (IE: dieing or uncharged battery)
Dieing or bad starter motor
spark plugs
dirty injectors
Possible causes:
changed oil withen last 3000 miles?
bad spark coil pack(s)
really really dirty air filter
really really dirty fuel filter
excessive load on one of the pullys, causing the starter motor to work really hard (a failing component)
Fuel pump?
A bad alternator WONT cause difficulty starting the engine unless the mechanical part of the alternaor (pully, or spindle) is creating a LOT of friction, causing the engine not to turn over fast enough. But if that's the case, it can be any other pully driven component of the engine and you'd probably hear a terrible grinding or squeeking noise.
All the alternator does is charge the battery and provide a constant electrical supply when the engine is running. The battery is in the car for engine startup, accessory power when the engine is off (like the radio), and for excessive electrical demands only, otherwise, there'd be a nice 30 lb reduction of weight
On some older ecnomy cars, the alternator doubled as the starter motor for the car's engine, this is not the case for all of the modern BMW's that I'm aware of. (definately not with the E36 line, I'm assuming the same for above models)