It may be a totally different problem, but when I got my E46 3 Series the screen washers hardly worked. I kept trying them and when I opened the bonnet I found the cap on the reservoir had popped open!
Anyway it was the usual BMW problem of algae on the pump filter so once I had got rid of that the washers worked fine and the cap stayed on.