Quite simply, it doesn't focus where you think it does. This photo of a rabbit was what settled it for me. I know I focused on the rabbit's eye; the little red light blinked on it, it looked totally sharp in the viewfinder - but when I looked at the image on the camera's preview screen, the rabbit wasn't sharp, as you can see clearly in the cropped-in version below. Darn!
OK, I thought, camera shake - I was using a monopod, but it was only 1/125th of a second. But hang on, look at the leaves a foot in front of the rabbit: sharp as you like.
So I did an experiment - all very scientific, using the fence around our newly-dug vegetable patch. Sure enough, at a range of 10 yards, the actual focus is about 6ins in front of where you think it is - the point where you've actually focused, and where it looks sharp in the viewfinder.
It's not really practical to 'aim off', so I'm going to have to investigate this further. The effect is identical with the lens on my 20D, and my 70-200 lens behaves impeccably on both camera bodies, so the lens itself is chief suspect at the moment. Comments and suggestions from more experienced photographers will be most welcome!
UPDATE 1: Hmm, bit of googling and I'm already discovering there's more to this than meets the eye - and maybe there was a reason why the 550D was about a quarter the price of the 5D Mk II I really wanted.
UPDATE 2: Thanks to the readers who've offered helpful suggestions in the comments. I tried a more scientific test, downloading a test sheet here, and photographing it following the instructions. The results suggest the camera is fine - I got accurate results with a Sigma 70-200mm 2.8, and a Canon 50mm 1.8 - but the 200mm lens is showing a significant degree of what I now know is called "front focus". The focus point for all three photos below was at "0" - these are cropped in to show the result.
Canon 50mm 1.8
Sigma 70-200 2.8
Canon 300mm 2.8