We have done this successfully. Our application allows the end user to see only the data associated with their organization, although the data for peer organizations is still present in the application for aggregate comparisons. The key is your ability to capture login information and tie it into the data model.
We are using an AJAX application (no QV Plugin or Java client access) that we authenticate to via a web page that uses Basic Authentication. We've written a small application to get a ticket from the QlikView server, using DMS authentication, which is maintained so that it matches the Windows login from the Basic Authentication on the web site.
Once we have the ticket, our app is aware of the user's identity via the QVUSER() system function. Our data model contains an Organization ID that also matches the login name. The table that stores this data is hooked into the rest of the data so that a user's ID is associated with their data.
The last step is to apply logic to the expressions in the user objects. For example, in a chart we might use Set Analysis to match the Organization to the QVUSER() so that we do not allow the user to see any one else's data. At the same time, we can define columns that do not filter on QVUSER() when we want to present aggregate data for comparison.
This approach took several weeks to build, but it is doable.