There are times when the best approach is to be subtle and discuss issues without actually discussing them while at other times it is most important to be direct and up front. The difference can be hard for people to distinguish but can be easier to decipher when a few rules are applied to the overall assessment of a situation. Knowing the difference can get your point across without risking open conflict.
People have needs and wants and will naturally push those onto others. Sometimes it is acceptable while at other times it is necessary to communicate where your boundaries lay. The message can be subtle or it can be direct. In most cases subtle should be preferred than direct as a method of slowly encouraging others to understand your needs.
Sometimes people don't know they are asking too much or wanting something that is inappropriate. Letting them know in a subtle way allows them to think about the request and whether or not it is truly appropriate. It also allows you a nice way of communicating without jeopardizing friendship or an open argument.
Subtle is not passive aggressive because you are willing to deal with the issue directly but prefer to have the person come to their own awareness. If a person doesn't understand multiple subtle hints then it is necessary to deal with the issue directly by stating the behavior and what you would like to see. You will still need to use tact but it will force the issue into the open.
Remember, it isn't always beneficial to do this. Most people will pick up on the hints and then change their course of action. When they don't they are stating that either they truly believe they are entitled to their behavior or don't respect your boundaries. Forcing the issue into discussion puts them on the spot to come forward with their wants and allowing you to draw a line.