• Something like this perhaps?

    --DDL and some data:

    create table Dates (

    UserID int not null,

    InDate date not null,

    Weeks int not null);

    insert into Dates (UserID,InDate, Weeks)

    select 1,'8/31/2012',5 union

    select 2,'9/14/2012',2;

    --Expected results:

    --UserID,OutDates

    --1,9/7/2012

    --1,9/14/2012

    --1,9/21/2012

    --1,9/28/2012

    --1,10/5/2012

    --2,9/21/2012

    --2,9/28/2012

    with cteTally(n) as (

    select top (select max(d1.Weeks) from Dates d1)

    row_number() over (order by (select null)) as n

    from

    sys.all_columns a

    cross join sys.all_columns b

    )

    select

    d.UserID,

    dateadd(wk, t.n, d.InDate) OutDates

    from

    Dates d

    cross join cteTally t

    where

    t.n <= d.Weeks

    order by

    d.UserID,

    OutDates

    ;

    go

    drop table Dates;

    go