The GX2 is 2 boards sandwiched together. Each board only has 128 stream processors and a 256-bit memory interface. To use the full potential of the GX2, you must be able to split your algorithm across 2 independant GPUs.
Assuming you will only be running on one of the 2 GPUs in the GX2, choosing between the 8800 Ultra and the 9800 GX2 depends on your application. The 8800 Ultra has a lot more memory bandwidth, so it is the clear choice for memory bound applications. Applications that perform very little memory accesses but a lot of floating point operations may perform better on 1 GPU in the 9800 GX2.