I have the single electric fan setup on my 99 e46 323i and had the same problem where the fan keeps running.
Basically that fan is variable speed and not a relay setup like other fans. I'm and electronics geek and have been repairing TV's, VCR, Amplifiers, etc. for 20 years. The MOSFETS in that module are shorted (happened to me 5 years ago) and basically its just letting the full 12v run to your fan. On the plug there is 3 wires. the 2 big ones are the main power (positve and negative) and the third small wire is the signal which tells the module how fast to spin based on A/C pressure, temp, voltage, etc.
You need a new fan. When mine went i bought a used one but the fan was bad so i swapped out the little rectangular module and it worked.
i'm now having the issue where my fan runs for a bit (yes its hot outside now) but it never did it in the past. Mine is not running for long a low speed but more kicks in and out of high speed and if i run the A/C and i'm in traffic, the engine starts to over heat slightly, my rad fan doesn't come on, until i drive the car off at high speed. I'm pointing towards the temp sensor on the lower hose.
when i change it i'll let you know, but in your case your module is shorted.