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;