I have an older Cisco 2940 that is sending packets directly to the firewall (traceroute / snmp) instead of the default gateway specified on the switch.
int vlan 10
ip address 192.168.1.10
no ip route-cache
firewall = 192.168.1.254
If I do a traceroute to a public IP, it will show 192.168.1.254 as the first hop. If I test this from all other switches it will hit 192.168.1.1 first.
I turned on route-cache on the interface and tested a traceroute. This worked, but quickly changed to using the firewall as the first hop.
Not sure if there is anyway around this type of behavior with this model of switch.