Is it running on the same client in both cases? If not, you have two choices, client or server potential issues.
You could have a different isolation level on each server or connection, which could cause the behavior. I'm not quite clear why you have blocking. Are you opening the connection from inside the transaction to read things?