Here is a simple solution that allows you to share an iPhoto library between multiple user accounts that does not require moving your library to an external drive or disk image. All you need to do is share your Pictures folder with multiple users.
Using this method iPhoto will run as fast for each user as it would if it was not shared. I didn't want to put my library on an external drive or disk image because, in addition to using Time Machine for a local external drive, I pay for an online backup service in case of fire or theft, and that service will not backup an external drive or disk image.
Instructions:
1) Start with a single library owned by one User Account who has administrator privileges.
2) Create a new user group called photoshare:
- System Preferences > Users & Groups
- Unlock if locked (lower left lock icon)
- Hit the plus sign (lower left) and in diaglogue box under New Account choose Group from the drop down menu
- Full Name: photoshare
- Add users with check boxes as desired
- Right click on the group photoshare in the left plane, confirm that "photoshare" appears in the box "Group name." Otherwise the next steps won't work.
3) Open the terminal application. Type these commands in successively; each may take a few minutes to execute.
4) close iPhoto if open.
5) Switch to another user account
6) close iPhoto if open, and reopen iPhoto while holding down the option key.
7) A dialogue box will appear prompting you to choose the library. You should see the shared library file in the list of choices for libraries. You will probably see at least one other option called "iPhoto Library." Examine the path structure in the bottom of the dialogue box to determine which library you want to share.
8) repeat steps 4 through 7 for each user.
9) Run some tests - add or delete photos while using one account, see if you can find them in another account.
I expect you can do something similar for iTunes and iMovie.
Known Limitation:
Only one user can be using the iPhoto library at one time
Suspected Limitation:
PhotoStream syncs with the shared library using one AppleId and one computer User Account, and the photos appear for all users. But, I suspect a second User Account could not use a second Apple ID to sync the same library with photostream. I haven't tested this.
Hope this helps!
Luke