You should first of all consider supporting the sorting of your items on various relevant (and displayed) attributes to allow expert users to easily create contiguous blocks of items (e.g., via shift-clicking) to be categorized at once.
In any case, there are two basic options:
You can display the 2 to 100 items in a scrolling table with three radio buttons for each item to select the category. With one click to make a category selection, it’s more efficient for single items than drag-and-drop or selection-and-command-buttons. It also makes for among the most compact presentations. With radio buttons you can also have a default selection, which may be desirable if it’s necessary to ensure all items end up in a category (any category). If not, you can have a fourth radio button for No Category to allow users to de-categorize any item at any time.
The user should be able to sort on the radio button group (e.g., by clicking the column header for the group) to see all items together in the same category -including all the No Category items that still need to be categorized.
If there are sometimes contiguous blocks of items that go in the same category, then consider also a pulldown menu, along with a context menu, that allows users to set all items in a selected block to the same category. Alternatively, you may want to consider multi-attribute copy-and-paste to support this.
Multiple List Boxes
You can have a separate table or list box for each category, where the user moves an item to the category with a command button. Drag and drop may also be supported for categorizing (and re-categorizing), but because of its low discoverability, it should be considered to be an expert shortcut.
Multiple list boxes should only be considered if only a fraction of your items end up in any category (like selecting email addresses from an address book for the To and CC fields). In this situation, it easier for user to see if they’ve categorized all they should have categorized. However, it sounds to me like your users need to categorize all items, so they're probably better off with the radio buttons option.
Generally, you should have a separate list box for each category, not re-use the same list box. Re-using increases the chance of user error from when they don’t notice the current category setting for the list box. It also decreases efficiency and flexibility, either forcing the user to frequently change the current category (click-click) or adjust their work flow to fill one category then switch to fill the other category. Finally, three separate list is easiest for tracking the items in all categories with a single glance, which is the whole point to having separate list boxes.