Categorizing properly is tricky - it is a necessity to think from a user's perspective, and the categorization is always going to be a best guess. The trick of HCI is often about accommodating most of the people, rather than trying to get it right for all people.
Your example list has good and worse solutions that illustrate this point:
Good:
Search Bar
- prominent
- effective (gave good returns that weren't just first letter of first word)
- instant
- smooths over other list navigation inadequacies
Alphabetical Initial column
- prominent
- helps me locate myself in the list
- communicates the chosen organization
Worse
No Anchor Jump
- I must scroll to get to J, for example.
- I must think up the thing I'm searching for in advance
- With a long list, how can I navigate to a first letter or category from the start point?
Counterintuitive grouping
- What will I (the user) expect the grouping to be?
- First word (and thus, the alphabetical anchor) names the subset
Example:
As a user, I would think of the broad category first, so the more optimal choice would be to list the items as:
S>>
- Security - Computer
- Security - Network
- Security - Physical
- Security System Installer
So there needs to be a best-shot choice of list organization before applying it to an interface. Some questions to consider:
When it is a list of names, what is the anchor name: first name or last name? This may depend on the user culture and its customs.
What will be the most recalled word: the category or the item (ex: "bowl," "knife," "spoon," or "kitchen")?
Is this list typically organized in a system that we can map to (alphabetically, geographically, etc.)?
And on that last point, think of applying an already understood mental model to your list navigation. If it's car parts, the navigation could allow me to click on areas of a car where the part exists. If it is a list of names, I think of an address book.