BMO1 2009/10 Q5 functional equation: $f(x)f(y) = f(x + y) + xy$

Setting $y = 0$ gives $f(x)f(0) = f(x)$. Since $f$ cannot be identically zero, it follows that $f(0) = 1$.

Setting $x = 1, y= -1$ then gives $f(1)f(-1) = 0$, therefore $f(1) = 0$ or $f(-1) = 0$ must hold.

In the first case, setting $x = u-1, y = 1$ gives $0 = f(u) + u-1$ $\Longleftrightarrow $ $\boxed{f(u) = 1 - u} \,$.

I'll leave it to you to verify that this is really a solution, and to investigate the second case.