The #1 thing I can suggest is stop using program mode. It is the absolute worst mode on your camera and generally worthless.
Start using manual (The M on your dial...I assume the 300D has full manual mode) and set the aperture and shutter speed yourself. Then you have complete control. What you want to do in this instance is as follows:
1) Point your camera/lens at the sky in manual mode, and look through the viewfinder with the shutter button depressed part way to focus.
2) Set the f/stop to something reasonable, like f/8 or some such...less if you need more shutter speed...and then adjust the shutter speed until the meter reads, say, at 0.
3) Take a shot, view in your viewfinder, and adjust your shutter speed to compensate for what you view in the histogram. You want a balanced histogram with the majority of the information in the middle two thirds of the histogram. You don't want anything on the far right edge as you are blowing out your whites, or the far left edge as you will be losing shadow detail.
It takes some getting used to setting the aperture and shutter speed yourself, but you get so much more control over the situation. In some instances, with rapidly changing light, it might be useful to use aperture priority, but most of the time manual mode is a better choice. Especially in even, unchanging light. You can just meter what you are shooting at (say flight shots against sky, meter the sky) and then leave the settings there without having to worry about the camera changing them on you.
As an example. It is sunny out, with the sun setting slowly here in Minneapolis at 7pm local time. I just took my Canon 20D with a 70-200mm f/2.8L lens and set it at f/16, 1/250th, ISO400 and pointed it at the sky. The exposure comp was at 0. This produced an image with all of the image information in the center third of the histogram. I then adjusted the exposure +2/3 by setting the shutter speed to 1/160th. This produced a lighter image with the image information farther to the right towards the right third of the histogram.
Now ISO of course helps determine shutter speed, and the same exact image at f/16, 1/250th, ISO400 I then took at ISO100. However, each stop of ISO represents a full stop of light, so from ISO 400 to ISO 100 is 2 full stops of light, so I kept at 1/250th, but dropped 2 stops of light to f/8. This produced exactly the same image, with exactly the same histogram.
Sitting in front of your mirror, or on your deck or in your backyard, and just playing on manual exposure mode taking images with varying f/stops, shutter speeds, and ISO's will give you a feel for how each of the variables affect the image.
Cheers,