From what I understand «зачем» means "for what purpose", and trying to distinguish between that and «для чего» doesn't translate well. Additionally, how does «зачем» compare with «почему»?
Зачем refers to factual purpose, while для чего is for intended purpose (для чего эта кнопка? "what is this button for?" vs. зачем ты нажал эту кнопку? "why did you press this button?").
Почему asks for reasons or causes, not purposes, i.e. where meaningful intent is not involved (generally, anyway; you might come across some examples that blur these distinctions).
Зачем is about a purpose and почему is about circumstances.
Imagine you run into a friend in a shop and ask him why he's there. You could have the following dialogue:
- Зачем ты здесь? / Why are you here? - Купить молока / To buy some milk
Or this one:
- Почему ты здесь? / Why are you here? - У меня кончилось молоко / I ran out of milk
The difference is subtle, and you can almost always replace one with the other without any problem.