Not having permission to change a file can usually be solved by looking at three distinct but related issues.
ACL permissions (Access Control List)
Each file and folder have their own permissions that grant or deny a user access to that object. This is the list of permissions you see when you look at a file's properties and then click the Security Tab. From here you can grant or deny individual users and/or groups of users access to the object using the ACL permissions,ie Read, Write, etc.
By default, who ever creates an object is the owner of the object(This can change if you are part of a domain).
The owner of an object has rights to change the permissions on the object. At the same time, this owner can also deny Administrators access to the object. Sounds confusing?
It isn't when you realize the Administrator group has the rights to take ownership of any object. If you look at a file or folder's properties, click advanced and look at the Owner tab, you can see who is the owner of the object.
The most misunderstood and overlooked area when it comes to permissions is UAC. If your account is part of the Administrators group, it doesn't mean you have Administrator priviledges. By default, you account starts out with Limited User Access, or LUA. This is harden the security of your machine. Every program is essentially granted the priviledges of the user that started the program. Think of it like everytime a contractor shows up to your house for laying tile in the kitchen, your significant other will allow the contractor in the house even if you aren't there since you said so.
However, the contractor isn't given free reign of your house. Only enough access to get the job done, eg water, toilet, the kitchen. This is like giving the valet a valet key, instead of the regular car key (which could open your trunk and glove compartment). The contractor isn't allowed to go into your bedroom or the kid's room because you would ask "Why in the world would they need to do that??". In the same way, Vista( and newer) operating systems gives programs essentially the permissions of a Limited User (you can think of this as belonging to the User account) because programs rarely need such priviledges.
Thus, even Explorer is only run as a User, even though your account is part of the Administrator group. For Explorer to perform actions that are marked as Administrators only, it needs to be elevated (this is when you see the UAC multicolored shield).
To elevating a program, the OS looks to see if your account is part of the Admin group. If it is, the OS elevates the program, granting it Admin priviledges. If not, the OS asks for the username and password of someone in the Admin group.
There are also several corner cases, but you won't run into those cases unless you are messing with objects you shouldn't be messing with.