To get the data in I'm basically mapping the height values of a terrain made in a level editor to a 0.0 - 1.0 range, storing them in an array of floats, and passing the array in to Texture2D.SetData. I'm saving the texture using the Dds file format. When I load the texture in my engine using Texture2D.FromFile and pass a float array into GetData, the values are the same as in the array I used to set the data, but if I load the texture through the content pipeline, the values are off by a maximum of around .02. Values close to 1.0 are lowered and values close to 0.0 are raised, and the amount of the error decreases as the values approach 0.5. Also, values that are exactly 1 or 0 are not changed.
One other thing that might be relevant is that when I load the texture using the content pipeline in XNA 1.1 using the Texture (mipmapped) processor, it works just fine.