oakbox has asked for the wisdom of the Perl Monks concerning the following question:

I've been wracking my brain about this for a few days, but no clean way is making itself obvious to me and I was wondering if any of you have run across something similar and how you solved it. If this is way off topic, let me know that too (and maybe suggest a forum?)
I have a list of 20 statements on the screen (HTML interface) and I need the user to arrange those elements in their order of preference. After ordering the items, the user needs to confirm their ordering or make changes if they need to.
I've tried showing all 20 statements on the screen and giving the user rows and rows of radio buttons that they can use to order the items (very difficult to use and takes up a lot of space on the screen, usually more than a screen full at 800x600). I've tried a Java script widget that displays a selection box and a couple of buttons that allow the user to move highlighted items up and down (pretty similar to the code you can find in your user settings screen here on PM, this isn't very effective for a long list of statements). I've tried pitching the items to the screen as a group and asking the user to select the 'best' item, removing that item and pitching what is left over - repeat until whole list is ordered. This works right up to the point where they might need to correct their ordering, that just puts me back in the Javascript problem of dealing with a long list.

Have you dealt with anything like this? How do you go about solving your user interface problems and what suggestions do you have for solving widgets like this?