It really depends, but more description would be helpful. For instance, if you're getting an NIH grant running a drug trial, then the system will be entirely different as if you're on another grant checking people's quality of life using questionnaires. A data set with 10,000 rows and 10,000 columns is definitely not considered as a big data set in today's data analysts' point of view. Of course, what exactly goes into the cell matters as well: coded responses like 1=male and 0=female versus thousands of genomic data inside one cell will mean a huge difference.
Assuming you're working on just collecting data in the level of questionnaires or clinical observation, I feel that general commercial software you mentioned (SPSS and MS products) should work.
Data entry can be restricted to specified, plausible values for each
variable (string, number, integer, value from 0-2, etc.) in order to
minimize data entry errors.
Excel and SPSS are the wrong tools for that purpose but their related products like Access and SPSS Data Collection Data Entry do that. For freeware, CDC's EpiInfo can also do that.
Double data entry checking (users enter the same data twice and the
system flags discrepancies to minimize data entry errors).
The SPSS program and EpiInfo mentioned above do that. Even the SPSS base program can also do that. In fact, most statistical software have some of this capability. e.g. Stata compared file command (cf) and SAS command COMPARE, just to name a few.
Data from different measures are entered in separate forms, but data
can be easily merged by one or more matching columns
To me, this is more of a management and planning rather than system. As long as there is a well developed ID assignment scheme, most software can pull up and merge data pretty efficiently. I agree that SQL would be nice, and most software have some of SQL incorporated into it as well: Access, SAS PROC SQL, Stata odbc, R, etc.
I'd consider a good documentation trumps all on any day. If there is a clear linkage between data sets or tables, even Excel's VLOOKUP is an okay tool.
Data can be easily imported into R
xlsReadWrite are readily available.
Efficient to open and use
Efficient on what? Time or effort? Some of these software suggested have a steeper learning curve but eventually can be highly efficient (R, SAS) while some are more icon-based point-and-click (SPSS, Access) that are easier to pick up but eventually will become a bit slower if the users do not advance into the script-based interface (aka running SPSS and Access using scripts.)
User friendly (undergrad RAs would be using it)
That depends on what your school is teaching the undergrads. But no matter what they know or what they claim they know, I still train everyone.
Can interface to import data from other sources (iPad-entered data, website-entered data, physiological data, etc.)
For iPad you'd need to talk to the programmer (if you have one) to make sure the exported data can be read. For website-entered data (I'm assuming you mean something like Survey Monkey,) SPSS and Excel are still dominating. But both can be easily read by most statistical software. Physiological data are device specific, you may get comma separated, tab delimited, or even proprietary encoded data, you'll need to check with the device makers.
Low (or no cost) and a one-time license that can be installed on an
entire lab's worth of computers
I'd check if your institute has any site license agreement with the major software retailers and start from there. If no license agreement, then expand your search to educational discount agreement. A statistical software that is about US$2,000 can be bought at less than $200 if your institute has agreement with the retailer.
I like R (as a free stat software) but am other totally ignorant when it comes to free database or research management platform, can't help here.
Platform independent (can be run on Mac & PC)
Then you probably want to avoid SAS unless you are willing to install Windows parallel onto your Mac. Most others mentioned in this answer can run fine on these operation systems (like Stata) or have separated versions for each system (like MS Office.)
If you're not sure what is a "good system," I'd suggest looking for general guidelines from data repository organizations. They often have guidelines like this one which delineate what are good enough data sets to be hosted by them.
Books on "data cleaning," "data management," and "work flow management" may also help you refine the system. The tools are important, but the rules of using them are a lot more crucial for a less frustrating data management experience.
And finally just a disclaimer, I don't have financial affiliation with any product that I mentioned in this answer.