Richard,
What you're asking for is possible. First create the userform in the VBA editor. Create a Combobox, and as its Rowsource use the worksheet range where the customers' names are stored.
Create two more another Comboboxes for Previously Ordered Items and General Items. Since you want these hidden at first, set their Visible properties to False. Then use code like this to make them appear when a customer is selected from the first combobox:
Private Sub ComboBox1_Change()
ComboBox2.Visible = True
ComboBox3.Visible = True
End Sub
Populating these comboboxes may be a little tricky, since there contents will depend on what the user selects from the customer combobox. I suggest that in a column next to each customer, you enter the range where a list of the items they previously ordered can be found. So if in A2 is the name Joe Smith and a list of the items he bought is on Sheet2 in cells A2:A5, in B2 enter 'Sheet2'!A2:A50.
Then as the Rowsource of your Previous Orders combobox you'll have to use a combination of INDIRECT and VLOOKUP.
Sorry I don't have time to go into more detail. A useform like this will probably take hours to create and require a lot of testing / trial & error. I would suggest getting started and getting as far as you can, then coming here with a specific question when you get stuck.
Good luck,
-Ben
Sorry, put wrong name in Name field :) (n/t)