I needed to allow users of kiosk machine to only browse a list of permitted websites. This 'whitelist-only' functionality is available via OpenDNS, but it's expensive, with even the highest-end paid option allowing a miserly 50 domains. I have over 300. You can also use commercial software like wKiosk, but I found version 6's URL control to be unreliable.
Below is an alternative method.
1. Go to Parental Controls (System Prefs » Accounts » choose a non-admin user » Open Parental Controls…) and go to the Content tab: Allow Access to only these websites. This enables whitelisting, but you can only add sites one-by-one. What a pain!
2. Delete all but one of the whitelisted sites. Note which one you left, we'll need to find it later.
3. Go to Terminal, and run the following command, replacing userGoesHere with the account name you enabled Parental Controls for in Step 1:
dscl . -mcxexport /Users/userGoesHere > ~/Desktop/parental_settings
4. Using your favorite text editor (I am using TextWrangler for some of the commands below, so you may need to find equivalents if you use a different editor), format your list of whitelist domains/websites in a simple text file, one site per line, with a single carriage return at the end of each line. I had them all start with http.
5. Open your text file of whitelisted sites and parental_settings in your text editor.
6. In the whitelist file, hit Command+F to bring up the Find dialog. Turn on the Grep checkbox at the bottom. In the Find portion of the dialog, put the following:
(http*.*)(\r)
In the Replace box, put:
\r\t \r\taddress \r\t\1 \r\tbookmarkPath \r\t/AllowedSites/ \r\tpageTitle \r\t\1 \r
7. Select the whole, newly-expanded whitelist text and copy it.
8. Switch to the parental_settings file, and scroll down until you see the single website you left in as a marker. Select the text within the enclosing tags above and below it, including the tags, and delete it.
9. Paste in your copied text to this same spot.
10. Save and close the modified parental_settings file.
11. Back in Terminal, enter the following (you may need to enter your password after hitting return):
sudo dscl . -mcximport /Users/userGoesHere ~/Desktop/parental_settings
[crarko adds: I haven't tested this one.]

