User proxies are representative of the real user. It needs careful consideration to pick appropriate user proxies that really understands the goal of the project and view the the system similarly to domain experts. Although user proxy will be the decision maker, try to establish connection with the real-users. The best way for doing this is to request permission to start a user task force. It can consists any number of real users to gather their ideas on how they want the application to be developed. You can do this by conduct a series of discussion by taking top-level direction from user proxy. Show them the prototypes and generate feedback during task force meeting.
What if there really no user available and you must resort to user proxy, be sure to use more than one user proxy with different background. . This helps reduce the likelihood of building a system that meets exactly one person's needs. For example, combine marketing people with domain experts rather than using two domain experts. You can also use the competing product feature as a guide and source for your user stories. Get an idea and insert the new feature that they don't have. Try to find their features that are always discussed in online user group and are the features discussed because they are complex to use? This will be the advantage and value-add to your application.
Another technique to deal with user proxy rather than real users is to release the beta version of product soonest possible. Getting the real users use it early so that it can help to identify inconsistencies between the thinking of user proxy and real users.