The reason it works different when it is cabled to the lan or wan port is that you are using your router as a wireless switch when it is on the lan port. It does not use any of the router functions.

I am going to assume you use different IP blocks for the network on the the 2 routers. For example 192.168.200.0/24 and 192.168.100.0/24

If you use the same ip's it will get very confused since it thinks the printer is on the local network.

If they are different then it is very strange. Since your linksys thinks the printer is on the internet it should work just like any other address on the internet.

I would see if you can ping the printer from your linksys. It should work. Then ping it from a pc behind the linksys. If it does not work from the linksys itself then I would suspect a issue with the subnet masks on the printer. If it works from the linksys but not a device behind it I would suspect the linksys is blocking the traffic. It is not uncommon to block many of the microsoft filesharing things on routers that have firewall ability.

Your other option is to see if you can avoid running NAT on the linksys. These type of features are getting more common on consumer routers. Using some example ip's. If you had you linksys wan defined as say 192.168.200.99 with a default gate of 192.168.200.1 (your airport). The lan interface would be 192.168.100.1 and give addresses to the end devices out of the 192.168.100.0/24 pool with a gate of 192.168.100.1 This is pretty standard. Now you disable the NAT. Then you go into the airport and put in a static route of 192.168.100.0/24 and with a nexthop of 192.168.200.99. This solution is more for the person who wants to run the printer on the secondary router ie your linksys.

You could also try to swap your linksys and airport routers putting the airport behind the linksys. You could then move the printer to the linksys. Maybe airport is less restrictive and you could print. You could also just use the airport as a switch since you don't have the need to filter. Of course you it would make your linksys filter rules a little more complex since you have to figure out which traffic is coming from where.