I was really annoyed by the fact that every album I created in iPhoto also appeared automatically in the Screen Saver album list (in the Desktop & Screen Saver pane). There is no way to disable that feature, nor to drag the newly created albums off the album list in the Screen Saver tab. I really don't like this, because I don't want to watch my photo albums all the time. This is why the 'Randomly choose screensaver' feature was no more an option for me. Maybe the ScreenSaver turns on and suddenly I saw a picture of my boss while on vacation. Very bad;-) And I used to like this nice little option, in earlier versions of OS X it worked very well for me. I really don't know why Apple does such things without the possibility to disable them.
So after a long time while digging around in the web with no satisfying result, I create this little AppleScript. Using it is very easy. Start it, and it will launch the iPhoto app. Quitting either iPhoto or the script will quit the other app also. Technically, it removes the contents of the iPhoto property in the file com.apple.iApps.plist after iPhoto has finished. Maybe your system needs this information for other purposes; if so, then this script isn't for you, sorry. But I don't and it seems to work very well.
You only have to download the "Property List Tools.osax" from Late Night Software Ltd. -- as of now, it has version number 1.0.2 and it is free. After installing the additional osax, you have to open the script with Script Editor and save it as a stay-open program file.
-- begin iPhotoScript
on run
tell application "Finder"
try
open application "iPhoto"
end try
end tell
end run
on idle
tell application "System Events"
set _p to (name of processes) contains "iPhoto"
if _p is false then tell me to quit
end tell
return 10
end idle
on DeleteiPhotoProperty()
set plistRecord to {} as record
set thePlist to "com.apple.iApps.plist"
set _a to {""}
tell application "Finder" to set myFolder to path to preferences folder as string
set plistRecord to read property list file (myFolder & thePlist)
set |iPhotoRecentDatabases| of plistRecord to _a
store property list plistRecord in file (myFolder & thePlist)
end DeleteiPhotoProperty
on quit
tell application "Finder"
try
quit application "iPhoto"
end try
end tell
DeleteiPhotoProperty()
delay 5
continue quit
end quit
-- end iPhotoScript
[robg adds: I haven't tested this one...]
Mac OS X Hints
http://hints.macworld.com/article.php?story=20040617071643267