How do I know what changes a programe wants to make?

Solution 1:

You can use sudo opensnoop -n ProcessName to see what files have been opened by a process, but only after they've been accessed of course. You could also use fseventer to display modified files in a tree view.

The dialogs are shown by installers because they need root permissions to modify /Applications/ or other folders that aren't owned by the user. You can press ⌘I to see what files would be copied by an installer.