Depending on what type of data you’re asking the users to share, this could be done through a custom user field. For example, if you just needed a place for users to enter sensitive text based data, you could setup a custom user field that’s only visible to moderators that could either be required upon signup, or that they could enter in after creating an account.
Users could then edit this field on their Account → Preferences → Profile page, which would only be visible to moderators and the user themselves.
Beyond this, I believe private messages would be the best way to handle these types of situations.
I hope this helps!