There are cases in which you can use a different hood on a lens to at least partially compensate for the smaller sensor when using full frame lenses.
There's a little bit of info at http://www.lensplay.com/lenses/lens_hoods1.html
For example you can use the hood designed for the 24-105/4L on the 17-40/4L. I don't know of any really comprehensive list of such lens hood substitutions. It's complicated by the fact that different lenses with the same filter size have different hood mounting mechanisms and early hoods were "clip-on", while later hoods mostly have bayonet mounts.
I do know that the hood from the old 100-300 USM will it on the EF 50/1.8 (the early version), and it doesn't vignette on a 40D. If you use a hood on a lens mounted on an APS-C camera which is designed for something 1.6x longer on a full frame camera, you shouldn't get vignetting and you should get efficient shading.
I've no idea why Canon charge the ridiculous prices for their hoods (other than they can get people to pay it I guess). $60 for a shaped piece of plastic is outragous. There are some hoods on eBay for much less. They're made in China (where else?) and they're often shipped from somewhere in the far east. The quality may not be so good, but since their olny function is to shade the lens, the fit and finish on them isn't really a big issue.
When I don't have a hood (which is quite often as they are bulky and awkward to carry) and I suspect a flare problem from the sun, I just use my hand to shade the lens.