I've got this problem too ever since i got the car. guess it's just a common thing from E36 ( i have seen E46 with this too ).
Anyway, i did noticed that if you open the bonnet slightly after you've reached home, it'll disappear even faster.
I used to experience this whenever i wash my car when the engine is hot. but now i just pop/unlatch the bonnet (but not opening it) to let the vapour escape,no more problem.
However, driving in heavy rain does makes the lense fog up but i just open the bonnet and it's gone by morning.
Hope this helps. Cheers.