My home roaming network includes a 2GB dual band Time Capsule which serves as my primary router, a dual band AirPort Extreme connected by Ethernet and configured as a bridge, and an AirPort Express also connected by Ethernet and configured as a bridge. I believe everything is properly configured for a roaming network, that is they all have their 2.4GHz network named identically with the same WPA2 and pass phrase across the board. (Each has a similar, but uniquely named, 5GHz network so I can specifically connect to one or the other with my iPad.) I have statically configured the IP addresses of the two bridges.
At first blush, everything seems to work well, however when I carry either my (powered off) iPhone4 or iPad from an area of my home where I was using it, then turn it on in a different area where the network of choice would be provided by a different router/bridge, performance is abysmal. Example, turn on the iPhone4 to check Mail and I get a good connection from the nearby base station (as evidenced by a check of AirPort Utility), but it just sits there and spins and eventually give a failure message. If I quit Mail completely then turn the iPhone4 WiFi OFF then immediately back ON and restart Mail, it immediately works as expected and in a timely fashion. This is repeatable with other common apps (Safari, Facebook, etc) and it is very annoying.
To my mind it is as if the primary router has old routing table entries from the previous wireless connection and directs returning packets there, meaning to a different router, instead of to where my device is presently located. I do have a table of DHCP Reservations set up in the primary router. Perhaps related? The same issue affects my iPhone4, iPad, and my wife's MBA if she moves it elsewhere in the house.
Upon rereading this post, I suppose the easiest thing to check is removing the DHCP Reservations and see if the problem changes. My use of DHCP Reservations is a very old habit from when there was no easy way to determine which device was connected where so I memorized the low order byte assigned to each device.