Sticky Table Headers ala Drupal 6, for Drupal 5
I'm starting to build new websites with Drupal 6 now that the juiciest modules (CCK and Views especially) are nearing stable releases, but Drupal 5 is still very widespread, so I expect a lot of people will be using it for at least a matter of months, maybe years.
Once you've installed and activated both jQuery Update and Sticky Headers (they're both in the User Interface package on the modules page), you should be able to look at your user permissions page (called Access Control in Drupal 5) and get a scrolling table header to help you keep your place.
I made it work by overriding theme_user_admin_perm() from the core user.module. The function is named phptemplate_user_admin_perm(), so if you want to override that table in your theme, you'll need to make sure your function is named mythemename_user_admin_perm() or you will run into naming conflicts.
With this module enabled, you can add the functionality to other forms throughout Drupal. With themeable forms, you just look for code that looks like this:
$output = theme('table', $header, $rows, array('id' => 'whatever'));
And in your theme where you override that function, add the sticky-header class like this:
$output = theme('table', $header, $rows, array('id' => 'whatever', 'class' => 'sticky-enabled'));
From there, it should just work.
The colors in used for the sticky headers are hard-coded right now. If I didn't hard-code it, the background on the sticky header was transparent, which made it hard to see. So for now, it's always black on white. In the core themes, you probably won't notice.
I don't think I'm going to try to add this to the Drupal repository. It's useful, but I don't know if cluttering things up with a small backport module like this is a good idea.