SQL Server 2008 R2 returning wrong record
First, make sure your SQL Server is fully patched and up to date.  For 2008 R2, at this time I'd say the hard minimum is build 10.50.6220 (SP3 + MS15-058), and you really should be at 10.50.6537 (SP3 + MS15-058 + TLS 1.2 capability).

Second, make sure you have a unique index on the combination of NetworkUserID, NetworkID (with the highest cardinality one of those two first).

Third, patch your host OS and move that leaky service to another machine.
Or, if you absolutely cannot, then reboot the server often enough that it doesn't run out of memory before the next reboot.  Or buy more RAM for it.

My expectation is that EITHER the patching will fix it, OR putting the unique index on will fail because you've got duplicates in the table already.

The other thing that might be an issue is that you have an actual hardware fault, and may have corrupt data - this is actually very rare.  


make sure you have SQL Alerts set up and running; Glen Berry has a script on sqlskills.com to do this.
run DBCC CHECKDB with DATA_PURITY first, on ALL databases on the instance.
make sure you have CHECKSUM checking on every database.
rebuild all your indexes (ALTER INDEX ALL on  REBUILD).


just in case CHECKSUM was added late, and some of the pages don't have it yet because they've never been touched.
and make sure every table has a clustered index, while you're at it.

check for existing records of disk errors (event log, hardware logs, etc.)
run chkdsk in Windows on all your drives.
if you're on RAID, try a consistency check and/or patrol read or other validation.
run underlying hardware diagnostics.