Why do some Android apps need access to my SD card and fine location? I understand why apps like Maps need to know my specific location, but is it safe to allow any application to access these things? Are there any clues as to which apps are safe and which aren't?

Also, when I take pictures does it save my longitude and latitude at the time the picture was taken? How can I get to this setting?
Depending on your phone / software, there should be an option somehwere in the camera app, something about geotagging or storing location data (being the same thing).
(Just open the camera app, click menu and scroll through the settings)

As far as app permissions are concerned:
Does your app really need your location?
Most likely not. Maps, navigation, GPS tools, geocaching tools, foursquare and pretty much any app that is designed to and downloaded because of their handling of location data all need the fine location (well, to be fair, foursquare doesn't as long as you don't use it as a substitute for google places).
Just ask yourself: Does the new version of Angry Birds really need to know where I am? Nah. From then on it's just one of two things:
Either you ignore the permissions since your really like that app, or you stick by your principles and don't download the app.

However, to be safe, simply disable GPS when you're not really using it anyway (for navigation or something), once GPS is disabled, apps won't get your fine location, only your estimated location based on last know location or wifi triangulation or whatever is used to get your estimated location via wifi.