"Can a Parent be joined to a Child table on a field that has not been defined as a Foreign Key?"
Yes , you can define any join criteria you wish and with outer joins, restriction criteria needs to included in the join instead of the where clause.
I have seen many examples of joins between tables, and they all involved the Primary Key of the Parent matched to the Foreign Key of the Child. Is this a requirement, or just a best practice?
I would recommend that if you are not
joining based on Primary Key to Foreign Key columns, then you need to document why you are not. Some relational DBMS even include a short cut for a Primary to Foreign key join , named imaginatively enough, a "key join".
SQL = Scarcely Qualifies as a Language