Please become accustomed to provide decent context info of your problem.
It is always helpful to carefully and detailedly phrase a request, and to support it with system info like OS and shell, related environment (variables, options), preferred tools, adequate (representative) sample input and desired output data and the logics connecting the two including your own attempts at a solution, and, if existent, system (error) messages verbatim, to avoid ambiguities and keep people from guessing.
What exactly is going wrong with your code snippet - after having added a semicolon in front of the do ? And, except this being incredibly inefficient. When I run it, it gives me the file2 lines for the names in file1.
Did you consider sth. like
grep -ffile1 file2
STEVE USER1 0987
BOB USER3 9327
CRAIG USER4 3427