As far as I've understood it: The Weather widget (and some others) occupy a bigger space than the visible area. So if you have the widgets fairly close together they will think they're covering each-other and one (or more) will move a bit upon startup.
To see how much space a widget really takes you can with Dashboard visible press cmd-(ctrl-)shift-4 then hit the spacebar. The cursor becomes a camera that will take a snapshot of whatever window it's hovering above. If you move that in over the Weather widget you will see it has quite an invisible top and bottom "border".