for the '00 323i, the freon level may be low or the fuse for the electric radiator fan could be blown.
the heater control "head" problem is common only to later E36 models with push button only control panels & the unit pops right out from below the radio. the new one ussually needs to be recoded to change the temp readings from C to F but will function fine otherwise.
for the '87 E30, if the freon level is ok, the problem's likely a bad aux. fan resistor (no aux. fan & the a/c condenser gets too hot, the high pressure switch will shut the compressor off.
good luck to all.