You have three basic routes, two of which differ primarily in presentation.
The first method is to use an unmanaged package. This has the benefit of being able to automatically resolve dependencies, increasing your chance of a successful deployment. Simply go to Setup > Create > Packages, create a new package, add the elements, validate that all components are present, then upload. Once uploaded, you can use the Installation URL to install the components into the other organization. While this is virtually foolproof, it does not necessarily allow packaging of some data, and name conflicts are common. For example, if you have a layout called Account-Account Layout in both organizations, you'll have to rename one of them before you can deploy successfully.
The second method is to use the Force.com IDE. Create a new project, download the contents, then use the deployment wizard to copy the components. Unlike the first option, you have to manually ensure that all components are present, including fields, page layouts, etc that you intend to deploy. Unlike the first method, though, duplicately named items will simply update the existing component instead of causing an error. This also lets you copy picklist values for standard fields, etc. More powerful, but more difficult to use.
The third method is to use the Ant Toolkit. Like the Force.com IDE, you have to specify the components manually. However, you can create packages (as the first option), then specify that package name for download. Like the Force.com IDE, deployment can overwrite existing items. The downside, of course, is that this is a command-line driven interface that uses XML files, so there can be a lot of manual editing without the aid of a graphical interface. However, this method is ideal if there will be repeated deployments, because it is far faster to reuse a package in Ant than either of the two prior methods; you can create shell files to automate retrievals and deployments.
Consider the following graph:
Difficulty Flexibility Complexity Setup Time Retrieve Time Deploy Time
Unmanaged Package Easy Limited Simple Low High High
Force.com IDE Moderate Moderate Moderate Medium Medium Medium
Ant Toolkit Hard Extreme High High Low Low
Difficulty: The level of skill needed to use effectively.
Flexibility: The features offered.
Complexity: How much configuration is required.
Setup Time: The average amount of time needed to prepare for retrieve/upload.
Retrieve Time: The amount of time to actually execute retrieval/upload.
Deploy Time: The average amount of time taken to deploy a set of data.