When a report shows students' first and last names in separately sortable columns (which is desirable), then if a user sorts on the last name, the first name should be an implicit secondary sort parameter. (In other words, in terms of SQL, if a user clicks on the "Last Name" column header, the result SQL clause should be "ORDER BY Last_Name, First_Name", with the appropriate DESC, ASC.)
Otherwise, as has happened, when a user sorts by last name, they might miss a student due to the natural, intuitive assumption that the first names are alphabetized secondarily. For instance, using the above URL (searching for students with the last name of "Brown"), one might assume that the student with the first name of "Alison" would come first, before "Amy" and "Anna" and "Ashley"; but, "Alison" in fact comes up ninth -- and thus would be missed by most users.
This should be easy to implement and is extremely practical. Alternately, if one insists on making an interface that is generalizable and thus is resistent to implementing such a practical solution, then the generalizable solution is to allow users to specify multiple columns to be sorted in a specific order (as is done in MS Excel and MS Access). Either of these solutions would work fine.