To calculate the correct weeknumber I always used the IsoWeek function (found here: http://msdn.microsoft.com/en-us/library/aa258261(SQL.80).aspx).
In SQL 2008 this function is available in the DATEPART function:
SELECT
DATEPART(wk, '4 jan 2009') AS WeekNumber, DATEPART(isowk, '4 jan 2009') AS IsoWeekNumber
Output:
| WeekNumber |
IsoWeekNumber |
| 2 |
1 |