You can build the `SelectOption` objects in your controller:

    public Id selectedUserId {get; set;}

    public List<SelectOption> getUserSelectOptions() {
        List<SelectOption> options = new List<SelectOption>();
        for (User u : [Select Id, Name from User order by Name limit 1000]) {
            options.add(new SelectOption(u.Id, u.Name));
        }
        return options;
    }

and so the Visualforce becomes:

    <apex:selectList value="{!selectedUserId}" size="1">
        <apex:selectOptions value="{!userSelectOptions}"/>
    </apex:selectList>

Note that the earlier version of this answer suggested using an apex:repeat to allow multiple apex:selectOption elements but as Carlos reports in his comment below Visualforce validates against that.