Can I just clarify the situation.
your iMac is connected by ethernet to the router? the printer - is this connected by usb cable to the iMac and shares this via your home network with the XP laptop?
If the above is the case are you saying that the Windows 7 PC cannot see the printer on the network?
If so have you
Gone to Devices and Printers in Windows 7 Select - add a printer - choose if your printer is in the list or if you have to choose "the printer I want isn't listed" Click on "Select a printer by name" This should give you the printers listed on your home network
You will also need to make sure that file and printer sharing is enabled on the windows 7 pc and that all of the pc's on the network are part of the same workgroup.
If you are saying that you have connected the printer directly to the router via usb to make it live across the network (I can do this with my livebox) then it may have to be enabled in the router configuration pages.
This is what I had to do to make mine work attached to my router that acts as a print server..
Step one: add printer manually - do not detect it. Step 2: create new port Step 3: select standard TCP/IP port Step 4: enter 192.168.1.1 Step 5: wait till windows can’t detect the port properly, and then choose Printer directly from the list. Step 6: choose the printer driver