In SQL Server 2005 and up (you didn't specify the version you have), you can do something like this using two CTE's (Common Table Expression) - a first one called UserSequence to put your data into an order and give it a sequential number (Sequence), and a second recursive CTE (Common Table Expression) to calculate the running total:
;WITH UserSequence AS
(
SELECT
Date, Users, ROW_NUMBER() OVER(ORDER BY Date) as 'Sequence'
FROM
dbo.YourTable
),
UserValues AS
(
SELECT
u.Users AS 'UserValue', u.Date, u.Sequence
FROM UserSequence u
WHERE Sequence = 1
UNION ALL
SELECT
u.Users + uv.UserValue AS 'UserValue', u.Date, u.Sequence
FROM UserSequence u
INNER JOIN UserValues uv ON u.Sequence = uv.Sequence + 1
)
SELECT
Date, Sequence, UserValue AS 'Users'
FROM
UserValues
ORDER BY
Sequence
That should give you an output something like this:
Date Sequence Users
2011-01-01 00:00:00.000 1 1
2011-02-02 00:00:00.000 2 2
2011-03-02 00:00:00.000 3 4
2011-04-02 00:00:00.000 4 8