Yup, this is still happening in Lion. The problem lies with the widget itself, which has not been updated probably since Leopard. I remember in that time, someone had luck with restoring a Tiger version of the widget to Leopard/Snow Leopard. There are some places on the web where people have attempted to "fix" it, I can't really recall any, but they basically do some code hacking =P.
I use two weather widgets. They kept moving down so this is what i did to fix it.
1. Open terminal app
2. type cd /Library/Widgets/Weather.wdgt and then hit enter
3. type sudo vi Weather.js and hit enter
4. type :set nu and enter. This will show the line numbers.
5. type 484G and no enter. This will move the cursor to line 484 which is
var y = (window.screenY + lastTopOffset) - (isReloadedWidget ? 0 : topOffset);
6. hit i to start typing as currently it wont be typing and change the above line to
var y = (window.screenY + lastTopOffset) - (isReloadedWidget ? topOffset : topOffset);
that is change 0 to topOffset.
7. type :wq and enter.