I've grown to dislike iPhoto for one feature. Overall it's a really nice application with a lot going for it, useful features, the ability to create picture books and have them printed automagically, etc. But the critical flaw is that your pictures have to be encased in its proprietary storage system. On importing photos into iPhoto it makes a copy of each image file in its own directory hierarchy and any edits it does on the images are on that copy. You are expected to delete your copy and only use the copy which iPhoto has.
This is a subtle form of lock-in. While iPhoto is a nice application and Mac OS X is a nice operating system, nothing is forever and the Mac may die over time. So if the Mac dies as a platform after you've ammassed 100,000 images in your personal photograph archive, what will you do? How will you be able to retrieve your pictures from the clutches of iPhoto? Wouldn't it be better for you if iPhoto didn't bury your pictures into its screwy directory hierarchy? Wouldn't it be better if iPhoto left the images in whatever directory structure you want to use?
Okay, in practice iPhoto's directory structure isn't entirely hard to deal with and no doubt if Apple and Mac OS X were to really die some shareware author would invent an application that helps you retrieve your pictures. But there's a principle here dammit. Your images are your data and Apple's iPhoto application is trying to prevent you from doing with them as you wish.
The fix is actually very simple, beginning with iPhoto 6.
In the preferences dialog, on the advanced pane, simply uncheck Copy files to iPhoto Library folder. That's it. This applies only to images you import from the hard disk. If you import directly from a camera or from a media card then iPhoto will still copy the images into its screwy library format.
And, while we're here, I want to discuss a naming strategy for your own folder structure. I've run afoul of this and want to help you avoid this.
When iPhoto imports images from the hard disk it names the Roll from the directory name. That seems like an obvious choice on their part, no doubt when you named the directory the name made sense to you.
However what I did was suboptimal when it came to iPhoto. For example I ended up with a roll namd big dragon. Hmmm... "bg dragon", eh? What does that mean? Well, the context is that it's in a directory structure that starts with "2002 Bangalore and Singapore", below that is a directory named "Singapore", below that a directory named "Chingmay". This big dragon was one of the parade floats in Singapores 2002 Chinese New Years Parade, and it was a long dragon made from balloons. Very pretty and colorful and photogenic.
When iPhoto picked up the big dragon name for the roll from the directory it lost all of that context about where and when the pictures were taken.
I'm thinking it might be better to have a flatter directory structure to store images. Rather than nest the pictures in a hierarchy I might do a two-level hierarchy. The top level would be something like "2002-02 Singapore Bangalore" with a series of directories directly under it with more comprehensive names like "Singapore 2002 Chinese New Years Parade".