Port redirection with exclusions

Hi folks,

I have an application that is acting up. I have another machine with a replacement application on it but because of the naming structure clients are using I cannot change the name to the replacement machine as it is also used to access other applications.

The host OS is Centos 5.6 and iptables is running. I'm familiar with setting it up for firewall purposes but my attempts to use it for redirection thus far have ended up in lost packets.

So, say the primary server is running on 1.1.1.1 and currently accepts SMTP mail.
The secondary server is running on 1.1.1.2 and also accepts SMTP mail.
I have a backup off site mail server running on 2.2.2.2

I need to redirect all connections received on port 25 by 1.1.1.1 to port 25 on 1.1.1.2 but not redirect 2.2.2.2 (and have the ability to exclude other hosts).

I'm sure this is possible, maybe a rule that accepts port 25 from 2.2.2.2 before the rule that redirects port 25 elsewhere?

One caveat, the connections also need to appear to be coming from the original source host otherwise it will stuff up the spam filtering app. I wonder if this will be possible without some trickery at the destination box to make it accept and reply as 1.1.1.1 without actually having the IP..hmm

For reference, there is no NAT involved. All IPs are Internet routable even though 1.1.1.1 and 1.1.1.2 are physically together.

It is probably fairly simple, I tried pulling what I've already tried from .bash_history but I think I did it from a screen session that hasn't kept it.