Actually, it's quite simple. The database does not store dates in dd/mm/yyy, or mm/dd/yyyy, or any other such format. It simply stores a number. The formatting is only used in passing values to and fro, since they have to be placed in a string, and need to make sense to the reader.
The SQL interpreter (at least for Access, not sure about other DBMSs) requires American format. So take your date value and format it as mm/dd/yyyy when placing it in the SQL's WHERE clause. You can display it in whatever format you like. Generally it's best to use the Windows settings if possible, so that the end-user is not locked into what you consider the right format.
Where possible, I recommend using a less ambiguous format to prevent this sort of issue. For example, dd-mmm-yyyy (Eg. 21-Jan-2007). There's not much chance of getting the day and month mixed up in this case.
Manpreet, I think expecting everyone to set their Windows date format the same seems a bit unreasonable.