Perhaps PATH is set up differently in backticks than in system. I can't say I've ever encountered that.
If you haven't already done so, you could try and set up $ENV{PATH} in your script or explicitly do it in the backticks command ...
my $result = `PATH=/foo/bar/bin:/baz/bin:. $cmd 2>&1`;
bluto