* User 1 has already loaded a web page and clicks a button that triggers a transaction that includes 2 tables.
* User 2 loads the same page and SELECTs data from the 2 tables currently in the transaction generated by User 1. User 2 does not trigger a transaction because he/she only gets data from the DB.
Well, if you want a consistent point-in-time picture of the data in those two tables you should probably perform the selects in a transaction too.
Is there any issue/problem for User 2?
MVCC mechanics eliminate the possibility of deadlocking between update queries and select queries (not select-for-update though). Because of it deadlocking is only possible between two updating transactions.