when you try to run the check_snmp in command line and the error message appears, you should also see the command that check_snmp tried to run.
Taking sebelk example:
/usr/lib64/nagios/plugins/check_snmp -H 10.1.0.3 -o .220.127.116.11.18.104.22.168.0
-C "somestring" -n -P 2c
SNMP problem - No data received from host
**CMD: /usr/bin/snmpgetnext -t 1 -r 5 -m '' -v 2c [authpriv]
copy and paste this command to run it.
=> sometimes, the error message is more explicit (sadely, it's quite rare :)).
With some luck, you've already found the problem.
Assuming that it doesn't work better (ie: the command you pasted exists with an error), there is one thing you can do:
log in on the firewall you want to poll, and see the logs: does it receives the snmp request ?
does it answer it ?
and if yes: through which route ? (btw: I've had many times the problem with the route to answer that was not defined, so the firewall just throes the reply to the default route...).
hope this helps a little bit