WP eStore plugin has an option that lets you collect customer input for a particular product at purchase time (for example you need to collect a name). To use this option simply check the "Collect Customer Input" checkbox when configuring the product.
You can also instruct your customers to add custom instructions at checkout time on PayPal's checkout page. PayPal lets your customers add a note (upto 300 characters) when checking out.
Depending on your situation you may need to collect a lot of data from the customer for a particular transaction. Unfortunately, there is a limit on how much "non PayPal payment related data" you can pass through PayPal at transaction time. To get around this problem you can do the following:
Place a contact form on the "Thank You" page that will collect all the necessary data from the customer after the payment. This way you can customize what fields you want to place to collect the data using a free WordPress contact form plugin (for example: Contact Form 7).
So the transaction flow will be similar to the following:
1) Customer decides to buy a product
2) Customer clicks on the "Buy" button and makes a payment.
3) The customer gets redirected to your "Thank You" page
4) The customer fills in all the additional necessary data in the contact form that you have placed on the "Thank You" page.
You can enable "Auto Return" in your PayPal profile which will automatically redirect the customer to your "Thank You" page after the payment.