In this article we will discuss about what is List Definition, List Template and List Instance in SharePoint 2010 and What is the difference between them. Also check out this article
on how to customize SharePoint list form using Infopath.
List definition defines the schema of a Sharepoint list. It contains all the metadata information as well as what are the content types, columns used. This also contains about information what views are being used.
You can check this article that describes how to create a custom list definiton using Visual studio 2010 here
We can create a list definition using Visual Studio only.
List template is a template through which you can create a list instance. You can create a list template by using SharePoint browser or SharePoint designer.
It contains list columns, site columns, content types
, views etc.
A List Instance is a single "instance" of a list created from an aforementioned list definition. A List instance can also be instantiated with data.
A list instance is an instance of a specific SharePoint list definition or list template. All of its data is stored in the relevant content database. Typically a list in SharePoint used by end users to enter and view data and it is based on either a list template or list definition.
You can also check how to attach workflow to a content type in SharePoint 2010 here