Sometimes you need your resultset sorted a particular way and using the primary key doesn't accomplish what you need. One way to get around this is to create a sortable column dynamically in your query using the CASE function.
SELECT name, title, priority =
when 'President' then 1 when 'Vice President' then 2 when
'Secretary' then 3
when 'Treasurer' then 4
ORDER BY priority
In this example, I give each title a priority and sort by it. This could have been accomplished using a second table and joining to it but why do that if you don't need to?