The psychology of the matter is simple. You are not going to work out the goodness of your heart (otherwise you would be offering your time to some charitable organization) and the company is not going to pay you because they are worried about your welfare. After this, most people do not like to talk about money or if they do, their comments can go down like lead balloons, even to the point of being considered offensive.
Thus we shadow box around the issue.
To answer the question of when it's right to raise the issue of salary, let's look at three options.
Right at the beginning of the interview
If you go in guns blazing with 'How much are you going to offer me?' you will immediately put the interviewer's back up. Beside which, they have not had a chance to decide whether they want you or what you would be bringing to the company. Even if you are going for a sales job, anyone knows that you tempt people with the product before announcing the price.
In the middle of the interview
This may seem the obvious place but it can end up being incongruous – one minute you're talking about other jobs you've done, the next you're saying how much you want to be paid. This is the time when the interviewer may ask you but, if they do not, carry on with the other questions and answers. Bide your time – you're getting them hooked.
At the end of the interview
Leaving it right to the very end may seem like the money does not matter (and, therefore, nor does the job). Tossing the salary question over your shoulder as you go out the door does not give the interviewer time to explain bonuses and fringe benefits (you need to know about them too) and it may make them angry for causing them to over-run.
If the interviewer does not broach the subject, the best time is at the beginning of the questions and answers session. Make it the second thing you ask – after some practical query about the company. That comes across as businesslike and is in good time for you to get the complete answer that you need.