When your setup looks like browser -> nginx -> backend, it more or less irrelevant what browser is able to handle when we are talking about connection between nginx and backend.
The protocol nginx uses to talk to backends by default is HTTP/1.0, and use of chunked encoding is explicitly forbidden by RFC 2616:
A server MUST NOT send transfer-codings to an HTTP/1.0 client.
If your backend returns chunked responses to HTTP/1.0 requests - it does wrong thing and needs fixing, regardless of the fact whether you see the problem in a browser or not. Common result is that chunk-size strings (hex numbers like
47 in the FAQ) are interpreted as a part of response body by various HTTP/1.0 clients.
In case of (old versions of) nginx what used to happen is that while passing data to a browser (which talks HTTP/1.1 and hence undersand chunked) nginx added it's own chunked encoding on top of incorrect body with chunk-size strings embedded. As a result browsers used to see the response body in a way nginx did.
From the above it should be clear enough that there is only one correct way to solve the problem - fix the backend. On the other hand, with newer nginx versions (1.1.4+) you shouldn't see the problem as outlined in the FAQ. If you see - this means that either your assumption about nginx version used is wrong, or you aren't using proxy_pass (but some other backend module?), or you have more than one problem. Using nginx debug log might help to find out what's going on here. Or you may start with fixing the backend (which is right thing to do anyway).