SELECT *
FROM Mytable
ORDER BY
userID, Date
I assume Date is really a date/time type and not varchar...
Edit, after clarification:
Untested
SELECT
M.*
FROM
( --one row for each user
SELECT MIN(Date) AS FirstUserDate, userID
FROM MyTable
GROUP BY userID
) foo
JOIN
MyTable M ON foo.userID = M.userID
ORDER BY
foo.FirstUserDate, M.userID, M.Date;